我在Android上的PlayerPrefs遇到问题。我希望本教程仅显示一次,因此我编写了以下代码:
void Awake(){
firstTime = false;
hasPlayed = PlayerPrefs.GetInt ("hasPlayed");
if (hasPlayed == 0) {
firstTime = true;
} else {
PlayerPrefs.SetInt ("hasPlayed", 1);
firstTime = false;
PlayerPrefs.Save ();
}
}
在手机上进行构建和测试后,该apk不会在/ data或任何数据上创建任何文件夹,因此,该教程将在我每次运行游戏时显示。
最佳答案
PlayerPrefs.GetInt
使用另一个参数,如果提供的键不存在,则可以使用该参数返回值。检查是否存在hasPlayed
密钥,其默认值为0
。如果密钥不存在,它将返回默认值0
。
如果返回0
,请将hasPlayed
设置为1
,然后播放教程。如果返回1
,则表示该教程已经播放过。与this问题类似,但需要进行一些修改。
它应该是这样的:
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");
}