Unity EditorWindow-更改场景时保存弹出窗口

时间:2019-02-04 19:50:31

标签: c# visual-studio unity3d

所以我要在EditorWindow中进行一种“场景管理”,我想知道当您尝试以正常方式更改当前未保存的场景时,是否有任何方法可以弹出相同的弹出窗口?

enter image description here

if(GUILayout.Button("Main Menu"))
{           
    EditorSceneManager.OpenScene("Assets/_Scenes/00MainMenu.unity");
}

if(GUILayout.Button("Level01"))
{
    EditorSceneManager.OpenScene("Assets/_Scenes/01Level.unity");
}

1 个答案:

答案 0 :(得分:3)

对于所有当前打开的场景,您可以使用例如EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo喜欢

if(GUILayout.Button("Main Menu"))
{   
    if(EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
    {
        // user said yes -> scene was saved
        EditorSceneManager.OpenScene("Assets/_Scenes/00MainMenu.unity");
    }
    else
    {
        // user said no -> evtl. abort or do nothing?
    }
}

if(GUILayout.Button("Level01"))
{
    if(EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo())
    {
        // user said yes -> scene was saved
        EditorSceneManager.OpenScene("Assets/_Scenes/01Level.unity");
    }
    else
    {
        // user said no -> evtl. abort or do nothing?
    }
}

但是请注意Unity的小提示^^

  

注意:当前显示带有三个按钮的窗口。保存和/不保存/都会导致场景被写入。取消会使场景保持不变。


或者,您也可以使用EditorSceneManager.SaveModifiedScenesIfUserWantsTo来将保存内容限制为一定的场景。

相关问题