我想知道如何使某事发生一次,就像游戏中的一个教程一样,仅当您第一次开始游戏时才出现,然后当您将游戏保存到另一个位置时,即使您关闭游戏也再也不会出现然后重新开始。
我基本上有七个场景,但是我想在应用启动时只播放一个场景1-5,然后在下次用户打开应用时直接跳到第六个场景
所以我想知道如何使某件事在游戏应用程序中只能发生一次。
我希望你明白我的意思。
答案 0 :(得分:1)
您可以看看使用PlayerPrefs。有多种使用方式,但这可能是您的一种轻量级解决方案。
如何使用它们的示例对您来说是这样;
private void Awake()
{
int tutorialFinishedFlag = PlayerPrefs.GetInt("TutorialFinished", 0);
if(tutorialFinishedFlag == 0)
{
ShowScenesOneToFive();
}
else
{
ShowSceneSix();
}
}
当它们显示完前五个场景后,您可以像这样设置PlayerPref;
PlayerPrefs.SetInt("TutorialFinished", 1);
答案 1 :(得分:1)
好吧,可以使用PlayerPrefs轻松解决此问题。您可以调用PlayerPrefs.SetInt()和PlayerPrefs.GetInt()。像这样:
public class SceneRouting : MonoBehaviour {
void Awake(){
// -1 means it is not the first time the player launches the game
// while 1 means it is the first time the player launches the game
int isFirstTime = PlayerPrefs.GetInt("isFirstTime", -1);
if(isFirstTime > 0){
// Here you can load any of these scenes 1, 2, 3, 4, 5
} else {
// Here you can load scene 6
}
}
}
您可以在游戏流程中的任何位置设置isFirstTime
变量。举例来说,当您调用Foo()方法时,您不希望游戏在下次启动时加载1-5个场景:
public void Foo(){
PlayerPrefs.SetInt("isFirstTime", -1);
}
此外,如果您希望游戏在启动时加载场景6,则可以将isFirstTime
的值设置为1