我的 Unity 项目从 3 个场景构建,它可以从任何场景开始。每个场景都有一个GameObject
,其中包含一个名为 isFirstSceneLoaded
的脚本,因为该脚本调用 它所要做的就是检查该场景是否是第一个从 game.so 加载的场景,假设我有一个名为 isFirstScene
的bool
,并且它最初设置为 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