Unity設置播放模式下始終先執行指定的場景

經過咱們使用Unity開發遊戲,是在PC/Mac上。而一個遊戲一般也會有不少的場景,好比A、B、C、D三個場景,正常流程下的執行順序是 A –> B –> C –> D。在具體一點,好比 A —— 啓動場景、B —— 資源加載場景、C —— 登陸場景、D —— 戰鬥場景。html

 

遊戲先啓動 –> 加載資源 –> 登陸 –> 進入戰鬥,而每每咱們可能會選中戰鬥場景,而後調試戰鬥場景,而此時點Play按鈕,運行Unity時,它會直接啓動戰鬥場景,若是你忘記選中 A 場景再點啓動,可能控制檯就會報錯,影響開發效率。如何解決呢?編輯器

 

Unity提供了相應不的API —— EditorSceneManager https://docs.unity3d.com/ScriptReference/SceneManagement.EditorSceneManager.htmlui

[MenuItem("BuildTools/PlayModeUseFirstScene", true)]
static bool ValidatePlayModeUseFirstScene()
{
    Menu.SetChecked("BuildTools/PlayModeUseFirstScene", EditorSceneManager.playModeFirstScene != null);
    return !EditorApplication.isPlaying;
}

[MenuItem("BuildTools/PlayModeUseFirstScene")]
static void UpdatePlayModeUseFirstScene()
{
    if (Menu.GetChecked("BuildTools/PlayModeUseFirstScene"))
    {
        EditorSceneManager.playModeFirstScene = null;
    }
    else
    {
        SceneAsset scene = AssetDatabase.LoadAssetAtPath<SceneAsset>(EditorBuildSettings.scenes[0].path);
        EditorSceneManager.playModeFirstScene = scene;
    }
}

路徑的話,你能夠參考官方示例寫死,不過這裏建議使用構建設置中的默認配置。spa

EditorBuildSettings 的 scenes 就是 File –> Build Settings 中 Scenes In Build中的列表插件

https://docs.unity3d.com/ScriptReference/EditorBuildSettings-scenes.html3d

 

這樣不管你當前編輯的是哪一個場景,只要從新運行,都將執行第一個場景。上圖中就是「Scenes/Title Screen」這個場景了。調試

 

由於這個是給編輯器寫擴展插件,因此適當地瞭解插件的編寫仍是有必要的。常常使用的兩類:code

一、菜單:右鍵菜單、導航菜單欄擴展(包括子菜單);htm

二、窗口blog

其它的的API,如拖拽、Help、Tools,須要用到的時候再去查看官方提供的API。

相關文章
相關標籤/搜索