所以我要在EditorWindow中进行一种“场景管理”,我想知道当您尝试以正常方式更改当前未保存的场景时,是否有任何方法可以弹出相同的弹出窗口?
if(GUILayout.Button("Main Menu"))
{
EditorSceneManager.OpenScene("Assets/_Scenes/00MainMenu.unity");
}
if(GUILayout.Button("Level01"))
{
EditorSceneManager.OpenScene("Assets/_Scenes/01Level.unity");
}
答案 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来将保存内容限制为一定的场景。