本文分享Unity中场景生命周期的监听: EditorSceneManager
在Unity开发中, 有时我们需要在场景的某些生命周期时做一些特定的操作, 特别是在Editor模式下的一些工具代码.
我们可以使用EditorSceneManager对场景的生命周期变化进行监听来达到目的.
下面我们简单分享下一些基本的用法.
sceneOpening
场景被打开之前调用.
// 第一个参数是场景文件的相对路径
// 第二个参数是场景的打开模式, 详情请参考: SceneManagement.OpenSceneMode
UnityEditor.SceneManagement.EditorSceneManager.sceneOpening += (path, mode) =>
{
};
sceneOpened
场景被打开后调用.
// 第一个参数是场景本身
// 第二个参数与上面一致
UnityEditor.SceneManagement.EditorSceneManager.sceneOpened += (scene, mode) =>
{
};
sceneClosing
场景被关闭之前调用.
// 第一个参数是场景本身
// 第二个参数代表是否将其清除(从场景管理器中)
UnityEditor.SceneManagement.EditorSceneManager.sceneClosing += (scene, removingScene) =>
{
};
sceneClosed
场景被关闭之后调用.
UnityEditor.SceneManagement.EditorSceneManager.sceneClosed += scene =>
{
};
上面是经常使用到的生命周期. 更多的请参考EditorSceneManager的文档.