加载另一个场景时场景不会被破坏

scene gets not destroyed when loading another

我的统一 android 应用程序的 ScenManager 有问题。 当我开始一个新场景时,旧场景处于活动状态并且可以工作,但新场景显示为有效。我希望只有新场景有效。

// here I load the new Scene
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);

我尝试了很多,但每次我都发现旧场景被自动破坏了。

必须手动卸载场景,否则它们将保持活动状态。查看 SceneManager documentation

在您的情况下,使用
卸载旧场景 SceneManager.UnloadSceneAsync(sceneName);
应该可以。

您也可以尝试使用 mode 参数进行试验。但由于 Single 是默认值,所以它并不是您想要的:
SceneManager.LoadScene(sceneName, LoadSceneMode.Single);

我同意德雨果的观点。如果使用 LoadSceneMode.Single.

,则无需手动卸载场景

另请参阅与 OnDestroy 相关的文档:

“销毁附加的行为将导致游戏或场景收到 OnDestroy。

OnDestroy 在场景或游戏结束时发生。如果关闭场景并加载新场景,将调用 OnDestroy。

当构建为独立应用程序时,在场景结束时调用 OnDestroy。场景结束通常意味着加载了新场景。"

https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnDestroy.html

在解决您的问题方面,使用LoadSceneMode.Single。如果您想保持上一个场景处于活动状态,请使用 LoadSceneMode.Additive.