我的统一Android应用程序的ScenManager存在问题。 当我开始一个新场景时,旧场景是活动的并且可以工作,但是新场景显示为一个工作。我希望只有新场景可以工作。
// here I load the new Scene
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
我做了很多尝试,但每次发现旧场景都被原子破坏了。
答案 0 :(得分:0)
我同意 derHugo 的观点。如果使用 LoadSceneMode.Single,则无需手动卸载场景。
另请参阅与 OnDestroy 相关的文档:
“销毁附加的行为将导致游戏或场景接收 OnDestroy。
OnDestroy 在场景或游戏结束时发生。如果场景关闭并加载新场景,则将调用 OnDestroy。
作为独立应用程序构建时,在场景结束时调用 OnDestroy。场景结束通常意味着加载了新场景。”
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnDestroy.html
就解决您的问题而言,请使用 LoadSceneMode.Single。如果要保持上一个场景处于活动状态,请使用 LoadSceneMode.Additive。
答案 1 :(得分:-1)
必须手动卸载场景,否则它们将保持活动状态。签出SceneManager documentation。
在您的情况下,请使用
卸载旧场景
SceneManager.UnloadSceneAsync(sceneName);
应该可以。
您也可以尝试使用mode
参数。但是由于Single
是默认值,因此它可能不是您想要的:
SceneManager.LoadScene(sceneName, LoadSceneMode.Single);