尝试写入文件时出现 Unity 5 unityscript returns 错误
Unity 5 unityscript returns errors when trying to write to a file
我已经成功制作了一个关卡,其中包含地形、标准资产 -> 角色中的刚体 FPS 控制器和其他一些游戏对象。我现在需要保存我的系统,所以我开始为 UnityScript google 文件 IO。我找到了一些示例,但它们 return 编译器错误(详情如下)。
OS 是 Windows 10 64 位。 Unity 版本是 5.5.1f1 64 位。代码编辑器是 Visual Studio 2015,行尾更正为 Windows 行尾。语言是UnityScript。我用过的代码:
#pragma strict
import System;
import System.IO;
var Filename : String = "save.ini";
private var rwfile : StreamWriter;
var x;
var y;
var z;
var Player : GameObject;
private var startTime : int;
private var timer1 : int;
function TimerSet() {startTime = Time.time;}
function TimerUpdate() {
timer1 = Time.time;
if(timer1 > 60) {
Debug.Log("Saving");
Write();
TimerSet();}}
function WriterSetup() {
Debug.Log("File Writer setup...");
if (!File.Exists(Filename)) {
rwfile = File.CreateText(Filename);}
Debug.Log("File Writer configured sucsessfully");}
function Write() {
rwfile = File.CreateText(Filename);
x = Player.transform.position.x;
y = Player.transform.position.y;
z = Player.transform.position.z;
rwfile.WriteLine(x);
rwfile.WriteLine(y);
rwfile.WriteLine(z);
rwfile.Close();}
function Start() {Debug.Log("Saver Script Setup");
WriterSetup();
TimerSet();}
function Update() {TimerUpdate();}
我的错误:
您的错误告诉您它不知道 OpenText
是什么。我在你的代码中没有看到任何关于名为 OpenText
的函数的信息,所以我猜你正在尝试使用 File.OpenText
函数,所以你应该更改这一行
rwfile = OpenText(Filename);
对此
rwfile = File.OpenText(Filename);
对于其他错误,您需要将 rwfile
分配给 StreamWriter
private var rwfile : StreamWriter;
您还应该为此更改 Write
函数:
function Write() {
x = Player.transform.position.x;
y = Player.transform.position.y;
z = Player.transform.position.z;
using (rwfile = File.CreateText(Filename))
{
rwfile.WriteLine(x);
rwfile.WriteLine(y);
rwfile.WriteLine(z);
rwfile.Close();
}
}
我已经成功制作了一个关卡,其中包含地形、标准资产 -> 角色中的刚体 FPS 控制器和其他一些游戏对象。我现在需要保存我的系统,所以我开始为 UnityScript google 文件 IO。我找到了一些示例,但它们 return 编译器错误(详情如下)。
OS 是 Windows 10 64 位。 Unity 版本是 5.5.1f1 64 位。代码编辑器是 Visual Studio 2015,行尾更正为 Windows 行尾。语言是UnityScript。我用过的代码:
#pragma strict
import System;
import System.IO;
var Filename : String = "save.ini";
private var rwfile : StreamWriter;
var x;
var y;
var z;
var Player : GameObject;
private var startTime : int;
private var timer1 : int;
function TimerSet() {startTime = Time.time;}
function TimerUpdate() {
timer1 = Time.time;
if(timer1 > 60) {
Debug.Log("Saving");
Write();
TimerSet();}}
function WriterSetup() {
Debug.Log("File Writer setup...");
if (!File.Exists(Filename)) {
rwfile = File.CreateText(Filename);}
Debug.Log("File Writer configured sucsessfully");}
function Write() {
rwfile = File.CreateText(Filename);
x = Player.transform.position.x;
y = Player.transform.position.y;
z = Player.transform.position.z;
rwfile.WriteLine(x);
rwfile.WriteLine(y);
rwfile.WriteLine(z);
rwfile.Close();}
function Start() {Debug.Log("Saver Script Setup");
WriterSetup();
TimerSet();}
function Update() {TimerUpdate();}
我的错误:
您的错误告诉您它不知道 OpenText
是什么。我在你的代码中没有看到任何关于名为 OpenText
的函数的信息,所以我猜你正在尝试使用 File.OpenText
函数,所以你应该更改这一行
rwfile = OpenText(Filename);
对此
rwfile = File.OpenText(Filename);
对于其他错误,您需要将 rwfile
分配给 StreamWriter
private var rwfile : StreamWriter;
您还应该为此更改 Write
函数:
function Write() {
x = Player.transform.position.x;
y = Player.transform.position.y;
z = Player.transform.position.z;
using (rwfile = File.CreateText(Filename))
{
rwfile.WriteLine(x);
rwfile.WriteLine(y);
rwfile.WriteLine(z);
rwfile.Close();
}
}