PlayerPrefs 不适用于 Android 或编辑器

PlayerPrefs not working on Android nor Editor

我在 Android 上遇到 PlayerPrefs 问题。我希望我的教程只显示一次,所以我写了这段代码:

void Awake(){
        firstTime = false;
        hasPlayed = PlayerPrefs.GetInt ("hasPlayed");
        if (hasPlayed == 0) {
            firstTime = true;
        } else {
            PlayerPrefs.SetInt ("hasPlayed", 1);
            firstTime = false;
            PlayerPrefs.Save ();
        }
}

在 phone 上构建和测试后,apk 不会在 /data 或其他任何地方创建任何文件夹,因此,每次 运行 游戏时都会显示教程。

PlayerPrefs.GetInt 采用另一个参数,如果提供的键 存在,您可以使用它来 return 一个值。检查 hasPlayed 键是否存在,默认值为 0。如果密钥不存在,它将 return 默认值 0.

如果 returns 0,请将 hasPlayed 设置为 1,然后播放您的教程。如果是returns 1,说明教程已经玩过了。类似于 问题,但需要稍作修改。

它应该是这样的:

void Start()
 {
     //Check if hasPlayed key exist. 
     if (PlayerPrefs.GetInt("hasPlayed", 0) == 1)
     {
         hasPlayed();
     }
     else
     {
         //Set hasPlayed to true
         PlayerPrefs.SetInt("hasPlayed", 1);
         PlayerPrefs.Save();

         notPlayed();
     }
 }


 void hasPlayed()
 {
     Debug.Log("Has Played");
     //Don't do anything
 }

 void notPlayed()
 {
     Debug.Log("Not Played");
     //Play your tutorial
 }

 //Call to reset has played
 void resetHasPlayed()
 {
     PlayerPrefs.DeleteKey("hasPlayed");
 }