值 | 一个具有以下签名的函数:MyMethod(Scene, LoadSceneMode). |
将自定义回调分配给此事件,以便在场景加载时获得通知。
创建一个自定义回调方法来接收通知,并将其分配给 SceneManager.sceneLoaded
事件。该回调必须具有所需的签名,并接收 Scene 和 LoadSceneMode 作为输入参数。
下面的代码示例定义了一个名为 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; } }