Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
保存/加载数据安卓设备,Unity,C#_C#_Android_Unity3d_Save_Unity5 - Fatal编程技术网

保存/加载数据安卓设备,Unity,C#

保存/加载数据安卓设备,Unity,C#,c#,android,unity3d,save,unity5,C#,Android,Unity3d,Save,Unity5,嘿,我现在想做一个Android游戏,我的步骤是保存/加载数据。现在我在我的电脑上测试,一切都很完美,游戏创建了“保存”文件夹并保存了我的档案。然后我把Apk放在我的Android设备上。当游戏不得不拯救布尔时,它就静止不动了。(不是定格,但不会继续) 下面是我用来保存数据的代码: 保存(如果您赢得某个级别,它将启动该方法):public void SaveData() 加载(我需要在我的关卡屏幕中加载,以检查玩家是否玩过关卡): 我希望你能帮助我,谢谢你的帮助 我只知道这种方法来保存数据,如果

嘿,我现在想做一个Android游戏,我的步骤是保存/加载数据。现在我在我的电脑上测试,一切都很完美,游戏创建了“保存”文件夹并保存了我的档案。然后我把Apk放在我的Android设备上。当游戏不得不拯救布尔时,它就静止不动了。(不是定格,但不会继续)

下面是我用来保存数据的代码:

保存(如果您赢得某个级别,它将启动该方法):public void SaveData()

加载(我需要在我的关卡屏幕中加载,以检查玩家是否玩过关卡):

我希望你能帮助我,谢谢你的帮助


我只知道这种方法来保存数据,如果你现在有一个更好的,如果它去安卓,请告诉我

您只检查玩家是否玩了一个关卡。别把事情弄复杂了。使用Unity内置的类内玩家参考来检查玩家是否已玩过该级别

    bool hasplayedLevel = false;
    if (PlayerPrefs.GetInt("hasPlayedLevel1") == 1)
    {
        hasplayedLevel = true;
    }
    else
    {
        hasplayedLevel = false;
    }

    if (hasplayedLevel)
    {
        //Players has played this level
    }
    else
    {
        //Players has NOT played this level
    }

当玩家玩了1级游戏后,您可以创建一个名为“hasPlayedLevel1”的键,并将1写入其中,如下所示:

PlayerPrefs.SetInt("hasPlayedLevel1", 1); //1 for yes, 0 for no
稍后在游戏中或当玩家关闭重新打开游戏时,您可以检查玩家是否已玩过关卡

    bool hasplayedLevel = false;
    if (PlayerPrefs.GetInt("hasPlayedLevel1") == 1)
    {
        hasplayedLevel = true;
    }
    else
    {
        hasplayedLevel = false;
    }

    if (hasplayedLevel)
    {
        //Players has played this level
    }
    else
    {
        //Players has NOT played this level
    }
通过将0写入
hasPlayedLevel1
,您可以再次标记玩家未玩该关卡

PlayerPrefs.SetInt("hasPlayedLevel1", 0);

永远不要出于任何原因使用“BinaryFormatter”。按照程序员的解释去做谢谢我会测试的是它完美而简单的thx!
PlayerPrefs.SetInt("hasPlayedLevel1", 0);