Save/Load 数据 Android 设备,Unity,C#
Save/Load Data Android device , Unity , C#
嘿,我想做一个 Android 游戏,现在我的步骤是 Save/Load 数据。现在我在我的电脑上测试它一切都很完美,游戏创建了保存文件夹并保存了我的布尔值。然后我将 Apk 放在我的 Android 设备上。当游戏必须保存 bool 时,它会静止不动。 (不是冻结帧,但不会继续)。
这里是我用来保存数据的代码:
Save(如果你赢了一个关卡就会启动这个方法): public void SaveData()
{
bool nextlevel = true;
if (!Directory.Exists("Saves"))
Directory.CreateDirectory("Saves");
BinaryFormatter formatter = new BinaryFormatter();
FileStream saveFile = File.Create("Saves/save.level." + nextScence);
formatter.Serialize(saveFile, nextlevel);
saveFile.Close();
}
加载(我需要在关卡屏幕中加载以检查玩家是否玩过关卡):
try
{
BinaryFormatter formatter = new BinaryFormatter();
FileStream saveFile = File.Open("Saves/save.level." + level, FileMode.Open);
nextlevel = (bool)formatter.Deserialize(saveFile);
saveFile.Close();
}
catch (FileNotFoundException e)
{
nextlevel = false;
}
希望你能帮助我,谢谢你的帮助
我只知道这种保存数据的方法,如果你现在有更好的方法,如果它继续android请告诉我!
您仅检查玩家是否玩过关卡。不要把这件事复杂化。在 class PlayerPrefs 中使用 Unity built 检查玩家是否 play 关卡。
http://docs.unity3d.com/ScriptReference/PlayerPrefs.html
当玩家玩过第 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
来再次标记玩家 NOT 玩过关卡。
PlayerPrefs.SetInt("hasPlayedLevel1", 0);
嘿,我想做一个 Android 游戏,现在我的步骤是 Save/Load 数据。现在我在我的电脑上测试它一切都很完美,游戏创建了保存文件夹并保存了我的布尔值。然后我将 Apk 放在我的 Android 设备上。当游戏必须保存 bool 时,它会静止不动。 (不是冻结帧,但不会继续)。
这里是我用来保存数据的代码:
Save(如果你赢了一个关卡就会启动这个方法): public void SaveData()
{
bool nextlevel = true;
if (!Directory.Exists("Saves"))
Directory.CreateDirectory("Saves");
BinaryFormatter formatter = new BinaryFormatter();
FileStream saveFile = File.Create("Saves/save.level." + nextScence);
formatter.Serialize(saveFile, nextlevel);
saveFile.Close();
}
加载(我需要在关卡屏幕中加载以检查玩家是否玩过关卡):
try
{
BinaryFormatter formatter = new BinaryFormatter();
FileStream saveFile = File.Open("Saves/save.level." + level, FileMode.Open);
nextlevel = (bool)formatter.Deserialize(saveFile);
saveFile.Close();
}
catch (FileNotFoundException e)
{
nextlevel = false;
}
希望你能帮助我,谢谢你的帮助
我只知道这种保存数据的方法,如果你现在有更好的方法,如果它继续android请告诉我!
您仅检查玩家是否玩过关卡。不要把这件事复杂化。在 class PlayerPrefs 中使用 Unity built 检查玩家是否 play 关卡。
http://docs.unity3d.com/ScriptReference/PlayerPrefs.html
当玩家玩过第 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
来再次标记玩家 NOT 玩过关卡。
PlayerPrefs.SetInt("hasPlayedLevel1", 0);