2017-09-21 37 views
0

我剛剛完成構建我的android遊戲,當我嘗試在android上播放它。沒有什麼會產生。我認爲它必須處理我的文件,該文件負責保存所有要執行的位置。請幫我解決這個問題。Unity在android中反序列化「.dat」文件?

public class DataHolder : MonoBehaviour 
{ 
    public static DataHolder dataholder; 
    public MazeData currentmaze; 

    void Awake() 
    { 
     if (dataholder == null) 
     { 
      dataholder = this; 
     } 
     else 
     { 
      Destroy(this.gameObject); 
     } 
     string directory = Application.dataPath + "/LevelData/"; ; 
     int number =Convert.ToInt32(SceneManager.GetActiveScene().name) -1; 
     if (File.Exists(directory + "/Level_" + number.ToString() + "/Level_" + number.ToString() + ".dat")) 
     { 
      BinaryFormatter binary = new BinaryFormatter(); 
      FileStream file = File.Open(directory + "/Level_" + number.ToString() + "/Level_" + number.ToString() + ".dat", FileMode.Open); 
      MazeData _level = (MazeData)binary.Deserialize(file); 
      currentmaze = _level; 
      file.Close(); 
     } 
    } 
} 
+1

以及第一我會打印張數的值。然後我會檢查正在搜索的文件的名稱。然後是否被發現。基本上,你可以打印if語句。 – Everts

+0

@Everts代碼請 –

+0

什麼?不,你請代碼?我是一個問嗎?我只是告訴你在代碼中放置一些打印內容,以便跟蹤發生的情況。 – Everts

回答

0

我會嘗試使用Application.persistentDataPath代替您的目錄。我相信這是您通常想要存儲保存文件的地方,因爲Application.dataPath將文件路徑返回到Android上的apk。

E.g.這條線string directory = Application.dataPath + "/LevelData/"; ;

更改爲string directory = Application.persistentDataPath + "/LevelData/";