统一反序列化" .dat"在android中的文件?

时间:2017-09-21 10:06:36

标签: c# unity3d

我刚刚完成构建我的安卓游戏,当我尝试在Android上播放时。什么都没有产生。我认为它与我的文件有关,该文件负责保存所有实例化的位置。请帮我解决这个问题。

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 个答案:

答案 0 :(得分:0)

我会尝试使用Application.persistentDataPath代替您的目录。我相信这是您通常希望存储保存文件的地方,因为Application.dataPath会返回Android上apk的文件路径。

E.g。更改此行string directory = Application.dataPath + "/LevelData/"; ;

string directory = Application.persistentDataPath + "/LevelData/";