我正在尝试将值保存到Unity中我的移动游戏的PlayerPrefs
中的文件中,但是在玩游戏后文件不会更新。
public class gameManager : MonoBehaviour {
private static gameManager instance;
public static gameManager Instance { get { return instance; } }
public int currentSkinIndex;
public int currency = 0;
public int skinAvailability = 0;
private void Awake()
{
instance = this;
DontDestroyOnLoad (gameObject);
if (PlayerPrefs.HasKey ("currency")) {
// We had a previous session
currentSkinIndex = PlayerPrefs.GetInt ("currentSkinIndex");
currency = PlayerPrefs.GetInt ("currency");
skinAvailability = PlayerPrefs.GetInt ("skinAvailability");
} else {
Save ();
}
}
public void Save ()
{
PlayerPrefs.SetInt ("currentSkin", 0);
PlayerPrefs.SetInt ("currency", 0);
PlayerPrefs.SetInt ("skinAvailability", 1);
}
}
答案 0 :(得分:0)
我认为你写的逻辑有问题!在Awake()
中,您有两个条件=>如果有钥匙,如果不是!
你想将一些值保存到playerprefs并且你已经有了保存功能,但是在Awake()
你只需要在两个条件下调用它,这就是你的代码所说的:
currency = 0 , current skin = 0, skinAvailability = 1
)Awake()
但是你玩游戏后获得的新价值也需要保存! 你不能拯救他们!
你的代码 在我玩游戏后(和变量已经更改)说&#34;再次保存值。&#34; < / p>
你需要再次保存它们!例如,您可以在通过编写函数退出播放场景时执行此操作,或者如果您已经编写了该函数,则可以将其分配给一个名为savebtn
的按钮,该按钮在单击时调用该函数。