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");
}
我在 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");
}