将此代码添加到编辑器窗口脚本中,通过脚本添加对象,然后尝试创建新场景。为什么unity在打开新场景之前不要求保存场景?
Event e = Event.current;
switch (e.type)
{
case EventType.keyDown:
{
if (e.keyCode == KeyCode.Escape)
{
GameObject b = new GameObject();
b.transform.position = new Vector3(0,0,0);
}
e.Use();
}
break;
}发布于 2016-03-15 23:50:52
我不知道这是否有帮助,但是关于Unity 5中的脏话
您必须:
using UnityEditor.SceneManagement;在代码的顶部。然后使用:
EditorSceneManager.MarkAllScenesDirty(); //or mark individual scenes as dirty如果你有动态实例化游戏对象的自定义编辑器脚本,那是绝对必要的。(我有一个创建了一个基于瓦片的地图。在编辑器中看起来很棒。我会保存场景,然后玩游戏。它消失了……)
我不能完全归功于这个发现,然而,旧的unity 4帖子给我指明了正确的方向。
发布于 2015-05-27 00:34:18
http://answers.unity3d.com/questions/336751/is-editorutilitysetdirty-restricted-to-prefabs-or.html
这孩子是个天才。当我们更新的时候,我们到底应该如何发现像这样的垃圾的变化呢?
EditorApplication.MarkSceneDirty
发布于 2015-05-26 22:16:55
创建对象(或对场景中的对象执行任何操作)后,需要调用EditorUtility.SetDirty(b);。如果更改了编写的脚本上的值,则还需要将该值标记为脏,才能使更改持久。
https://stackoverflow.com/questions/30459627
复制相似问题