【问题标题】:Unity EditorWindow - Save popup while changing scenesUnity EditorWindow - 更改场景时保存弹出窗口
【发布时间】:2019-02-04 19:50:30
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# visual-studio unity3d


    【解决方案1】:

    对于所有当前打开的场景,您可以使用例如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 的小提示 ^^

    注意:目前显示的是一个带有三个按钮的窗口。 Save 和 /Don't Save/ 都会导致场景被写入。取消使场景保持不变。


    或者,您也可以使用EditorSceneManager.SaveModifiedScenesIfUserWantsTo 来限制保存到特定的场景数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      相关资源
      最近更新 更多