什么会导致 PlayerPrefs 不保存字符串?

What could cause PlayerPrefs to not save a string?

我有以下代码。什么可能使这不起作用?其他 PlayerPrefs 似乎工作正常。日志总是显示它恢复了“”,但它总是保存我的实际文本。

编辑: 我刚刚发现我的“OnDisable”代码在“开始”之前被调用。我真的不认为这是可能的,但这就是问题所在。所以我想我的问题有点变了...

编辑 2: OnDisable 在 Start 之前被调用,因为另一个“Awake”函数正在禁用这个显然立即运行 OnDisable 的对象。

public InputField ModuleList;

void Start()
{
    ModuleList.text = PlayerPrefs.GetString("ModuleSet", "");
    Debug.Log("Restoring " + PlayerPrefs.GetString("ModuleSet", ""));
}

public void OnDisable()
{
    Debug.Log("Saving " + ModuleList.text);
    PlayerPrefs.SetString("ModuleSet", ModuleList.text);
}

致电

PlayerPrefs.Save();

用于保存数据

确保在调用 Start() 方法之前没有禁用 GO