启动应用程序时如何一次运行多个统一场景

时间:2018-11-12 11:31:25

标签: unity3d unityscript

我想知道如何使某事发生一次,就像游戏中的一个教程一样,仅当您第一次开始游戏时才出现,然后当您将游戏保存到另一个位置时,即使您关闭游戏也再也不会出现然后重新开始。

我基本上有七个场景,但是我想在应用启动时只播放一个场景1-5,然后在下次用户打开应用时直接跳到第六个场景

所以我想知道如何使某件事在游戏应用程序中只能发生一次。

我希望你明白我的意思。

2 个答案:

答案 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