用于保存密码的 Unity 切换在 Unity 中完美运行,但未按预期运行
Unity toggle to save password works flawlessly in Unity but doesn't work as expected
我在 PlayerPrefs 中保存用户登录名和密码时遇到问题。虽然它在 Unity 中工作得很好(如果保存了密码,则切换在启动时打开)它在 Android 上不起作用(如果未保存密码,则切换在启动时仍然打开)。在为 Android 构建之前,我确保切换开关已关闭且密码未保存。
这是我的代码:
void LoadUserPassOnStart(){
if(PlayerPrefs.HasKey("userSaved")){
if(PlayerPrefs.GetInt("userSaved") == 1){
loginEmail.text = PlayerPrefs.GetString("savedUsername");
loginPassword.text = PlayerPrefs.GetString("savedPass");
saveUserPassToggle.isOn = true;
int saved = PlayerPrefs.GetInt("userSaved");
Debug.Log(saved);
}
else if(PlayerPrefs.GetInt("userSaved") == 0)
{
saveUserPassToggle.isOn = false;
Debug.Log("Called false");
}
}
}
void SaveUserPass(Toggle saveUserPassToggle){
if(saveUserPassToggle.isOn){
PlayerPrefs.SetString("savedUsername", loginEmail.text);
PlayerPrefs.SetString("savedPass", loginPassword.text);
PlayerPrefs.SetInt("userSaved", 1);
Debug.Log("Saved");
}
else if(!saveUserPassToggle.isOn){
PlayerPrefs.SetString("savedUsername", "");
PlayerPrefs.SetString("savedPass", "");
PlayerPrefs.SetInt("userSaved", 0);
Debug.Log("Nulled");
}
}
我在 Start(){} 中调用 LoadUserPassOnStart 并将 SaveUserPass 添加到切换:
saveUserPassToggle.onValueChanged.AddListener(delegate{ SaveUserPass(saveUserPassToggle);});
这个问题让我抓狂,非常感谢您的建议。
设置密钥后尝试使用 PlayerPrefs.Save();
。
此问题是由于 Android 即使在卸载游戏后也会存储来自 PlayerPrefs 的信息。
我在 PlayerPrefs 中保存用户登录名和密码时遇到问题。虽然它在 Unity 中工作得很好(如果保存了密码,则切换在启动时打开)它在 Android 上不起作用(如果未保存密码,则切换在启动时仍然打开)。在为 Android 构建之前,我确保切换开关已关闭且密码未保存。 这是我的代码:
void LoadUserPassOnStart(){
if(PlayerPrefs.HasKey("userSaved")){
if(PlayerPrefs.GetInt("userSaved") == 1){
loginEmail.text = PlayerPrefs.GetString("savedUsername");
loginPassword.text = PlayerPrefs.GetString("savedPass");
saveUserPassToggle.isOn = true;
int saved = PlayerPrefs.GetInt("userSaved");
Debug.Log(saved);
}
else if(PlayerPrefs.GetInt("userSaved") == 0)
{
saveUserPassToggle.isOn = false;
Debug.Log("Called false");
}
}
}
void SaveUserPass(Toggle saveUserPassToggle){
if(saveUserPassToggle.isOn){
PlayerPrefs.SetString("savedUsername", loginEmail.text);
PlayerPrefs.SetString("savedPass", loginPassword.text);
PlayerPrefs.SetInt("userSaved", 1);
Debug.Log("Saved");
}
else if(!saveUserPassToggle.isOn){
PlayerPrefs.SetString("savedUsername", "");
PlayerPrefs.SetString("savedPass", "");
PlayerPrefs.SetInt("userSaved", 0);
Debug.Log("Nulled");
}
}
我在 Start(){} 中调用 LoadUserPassOnStart 并将 SaveUserPass 添加到切换:
saveUserPassToggle.onValueChanged.AddListener(delegate{ SaveUserPass(saveUserPassToggle);});
这个问题让我抓狂,非常感谢您的建议。
设置密钥后尝试使用 PlayerPrefs.Save();
。
此问题是由于 Android 即使在卸载游戏后也会存储来自 PlayerPrefs 的信息。