版本: Unity 6 (6000.0)
语言英语
  • C#

SceneManager.sceneLoaded

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们会阅读用户提出的每项修改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

参数

一个具有以下签名的函数:MyMethod(Scene, LoadSceneMode).

描述

将自定义回调分配给此事件,以便在场景加载时获得通知。

创建一个自定义回调方法来接收通知,并将其分配给 SceneManager.sceneLoaded 事件。该回调必须具有所需的签名,并接收 SceneLoadSceneMode 作为输入参数。

下面的代码示例定义了一个名为 OnSceneLoaded 的自定义回调方法,该方法具有所需的签名。它在 OnEnable 回调中将 OnSceneLoaded 分配给 SceneManager.sceneLoaded,并在 OnDisable 回调中取消分配。

代码示例和注释说明了回调的执行顺序。Unity 触发 SceneManager.sceneLoaded 事件并在 OnEnable 之后但 Start 之前调用关联的回调。

其他资源:禁用域和场景重新加载的详细信息

using UnityEngine;
using UnityEngine.SceneManagement;

public class ExampleCode : MonoBehaviour { // called first void Awake() { Debug.Log("Awake"); }

// called second void OnEnable() { Debug.Log("OnEnable called"); SceneManager.sceneLoaded += OnSceneLoaded; }

// called third void OnSceneLoaded(Scene scene, LoadSceneMode mode) { Debug.Log("OnSceneLoaded: " + scene.name); Debug.Log(mode); }

// called fourth void Start() { Debug.Log("Start"); }

// called when the game is terminated void OnDisable() { Debug.Log("OnDisable"); SceneManager.sceneLoaded -= OnSceneLoaded; } }