📅  最后修改于: 2023-12-03 15:20:52.245000             🧑  作者: Mango
在 Unity 中,有时候我们需要对场景进行修改,然后重新加载场景以预览修改后的效果。为了不必每次手动按下 File -> Save Scenes,然后再按下 File -> Open Scenes,我们可以利用 Unity 提供的 EditorApplication
类来编写一个脚本来实现自动重载场景的功能。
利用 EditorApplication.delayCall
方法来延迟一段时间后执行代码,这样就可以等待 Unity 将当前修改保存到硬盘上。然后利用 EditorSceneManager.OpenScene
方法重新打开当前场景即可。
using UnityEditor;
using UnityEngine.SceneManagement;
public class UnityReloadScene : Editor
{
[MenuItem("Tools/Reload Current Scene _F5")] // 定义快捷键为 F5
static void ReloadCurrentScene()
{
// 延迟一帧后执行,确保当前场景修改已经成功保存
EditorApplication.delayCall += () =>
{
var scenePath = SceneManager.GetActiveScene().path;
EditorSceneManager.OpenScene(scenePath);
};
}
}
UnityReloadScene.cs
;Editor
文件夹下(如果没有该文件夹,则需要手动创建);Tools -> Reload Current Scene
即可重新加载当前场景。注意:由于本脚本是利用 Unity 的编辑器功能实现的,所以只有在 Unity 编辑器中才能使用该功能,不能在发布的游戏中使用。