从不同的场景访问相同的布尔值



我的 Unity 项目从 3 个场景构建,它可以从任何场景开始。每个场景都有一个GameObject,其中包含一个名为 isFirstSceneLoaded 的脚本,因为该脚本调用 它所要做的就是检查该场景是否是第一个从 game.so 加载的场景,假设我有一个名为 isFirstScenebool,并且它最初设置为 NO,但是当脚本第一次Start()被调用时,我将其设置为 true。所以现在当我切换场景时,这个布尔值将等于 true。

我该怎么做?

创建一个静态类

public static class FirstSceneLoaded
{
    private static bool isFirstScene = false;
    public static void setBool(String sceneName)
    {
        if(sceneName == "first")
          isFirstScene = true;
    }
}

由于该类是静态的,因此只有一个实例,它将在整个游戏执行过程中存在。

这样称呼它

 void Start()
 {
     FirstSceneLoaded.setBool(Application.loadedLevelName);
 }

你可以用两种方式做到这一点1)在其中制作空对象放置脚本,其中包含布尔值,并且不要在加载时破坏它..2)你可以用类IsSceneLoaded创建脚本,从单声道行为中删除继承并制作静态函数(不要忘记删除更新和启动函数)

 public static bool GetBool() {// declare static bool in the class let's say its name 
DidLoad return DidLoad; }
/

/如果你想要一个函数来设置它

公共静态空隙 SetBool(bool newval) {DidLoad=newval; }

如果您不想添加游戏对象,如果它不对我的答案发表评论,则任何一种方法都应该可以正常工作,只需使用第二种:P

最新更新