2017-03-31 96 views
-1

我已成功使用標準資產 - >字符和其他一些GameObjects爲Terrain,Rigidbody FPS控制器創建了關卡。我現在需要保存我的系統,所以我已經開始爲UnityScript編寫Google文件IO。我找到了一些例子,但他們返回編譯器錯誤(詳情如下)。Unity 5 unityscript在嘗試寫入文件時返回錯誤

操作系統是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();} 

我的錯誤:

Error

回答

1

你的錯誤是告訴你,忽略了最低知道什麼OpenText是。我不介紹了一個OpenText功能代碼看出什麼,所以我想你想使用File.OpenText功能,所以你應該改變這一行

rwfile = OpenText(Filename); 

對此

rwfile = File.OpenText(Filename); 

也爲你需要的其他錯誤assigne您rwfileStreamWriter

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(); 
    } 
} 
+0

此外,它說'的WriteLine不是Object'' –

+0

的」成員,但是,感謝您的回答! –

+0

@VladislavToncharov嘗試將'private var rwfile;'改爲'private StreamWriter rwfile;' – CNuts

相關問題