Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 团结5。在新场景打开之前不保存场景_Unity3d - Fatal编程技术网

Unity3d 团结5。在新场景打开之前不保存场景

Unity3d 团结5。在新场景打开之前不保存场景,unity3d,Unity3d,将此代码添加到编辑器窗口脚本中,通过脚本添加对象,然后尝试创建新场景。为什么unity不要求在打开一个新的场景之前保存该场景 Event e = Event.current; switch (e.type) { case EventType.keyDown: { if (e.keyCode == KeyCode.Escape)

将此代码添加到编辑器窗口脚本中,通过脚本添加对象,然后尝试创建新场景。为什么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;
         }

创建对象(或对场景中的对象执行任何操作)后,需要调用
EditorUtility.SetDirty(b)如果您在编写的脚本上更改了一个值,则同样需要将该值标记为脏,以使更改保持不变。

创建对象(或对场景中的对象执行任何操作)后,您需要调用
EditorUtility.SetDirty(b)如果您在编写的脚本上更改了一个值,则同样需要将该值标记为“脏”,以使更改保持不变。

这个男孩是个天才。当我们更新时,我们到底该如何发现这样的狗屎会改变

这个男孩是个天才。当我们更新时,我们到底该如何发现这样的狗屎会改变


我不知道这是否有帮助,但是关于Unity 5中的肮脏部分

你必须:

using UnityEditor.SceneManagement;
在代码的顶部。然后使用:

EditorSceneManager.MarkAllScenesDirty(); //or mark individual scenes as dirty
如果您有动态实例化游戏对象的自定义编辑器脚本,那么这是绝对必要的。(我有一个创建了一个基于瓷砖的地图。在编辑器中看起来很棒。我会保存场景并玩游戏。它不见了…)


我不能完全相信这一发现,但是,旧的unity 4帖子为我指明了正确的方向。

我不知道这是否有帮助,但是关于unity 5中的肮脏部分

你必须:

using UnityEditor.SceneManagement;
在代码的顶部。然后使用:

EditorSceneManager.MarkAllScenesDirty(); //or mark individual scenes as dirty
如果您有动态实例化游戏对象的自定义编辑器脚本,那么这是绝对必要的。(我有一个创建了一个基于瓷砖的地图。在编辑器中看起来很棒。我会保存场景并玩游戏。它不见了…)

我不能完全相信这一发现,然而,旧的unity 4帖子为我指明了正确的方向。

使用此代码

                        UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEngine.SceneManagement.SceneManager.GetActiveScene());
使当前场景模式化

使用此代码

                        UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEngine.SceneManagement.SceneManager.GetActiveScene());

“使当前场景模式化”

无法在此处测试,但您可能需要使用EditorUtility.SetDirty(someObject)告诉Unity您的场景实际已更改;老兄,我试过了,但还是不行。现在,我们将使用这个选项,看看是否有什么可以从中得到。谢谢你的想法。这里不能测试,但是你可能需要告诉Unity你的场景已经用EditorUtility.SetDirty(someObject)改变了;老兄,我试过了,但还是不行。现在,我们将使用这个选项,看看是否有什么可以从中得到。谢谢你的主意。嘿,我刚试过这个,它还是不要求保存。不过,我会继续玩一些肮脏的价值观,所以谢谢你的想法。还有其他想法吗?也许试着把b.transform设置成脏的?设置为“脏”是唯一一件我没有正确保存的问题。可能尝试将位置更改为Vector3.1设置为脏,然后再设置回Vector3.0,使其认为自己脏。这不是一个很好的长期解决方案,但它可以工作。这也不起作用:/这一切在Unity 4中都可以工作,没有问题,也不需要设置脏。这只是Unity 5的问题。通过脚本为编辑器创建的新游戏对象在退出或新建场景时不会要求保存更改。你认为这是一个bug吗?我认为这是一个新的“特性”,从这个问题的另一个答案来看,这可能就是你想要的。谢谢你的帮助。你给我指出了正确的方向:)嘿,我刚试过这个,但它仍然没有要求保存。不过,我会继续玩一些肮脏的价值观,所以谢谢你的想法。还有其他想法吗?也许试着把b.transform设置成脏的?设置为“脏”是唯一一件我没有正确保存的问题。可能尝试将位置更改为Vector3.1设置为脏,然后再设置回Vector3.0,使其认为自己脏。这不是一个很好的长期解决方案,但它可以工作。这也不起作用:/这一切在Unity 4中都可以工作,没有问题,也不需要设置脏。这只是Unity 5的问题。通过脚本为编辑器创建的新游戏对象在退出或新建场景时不会要求保存更改。你认为这是一个bug吗?我认为这是一个新的“特性”,从这个问题的另一个答案来看,这可能就是你想要的。谢谢你的帮助。你给我指出了正确的方向:)欢迎来到StackOverflow。此链接可以回答问题,但您应该在回答中包含最重要的细节,因为任何链接都可能过时。欢迎使用StackOverflow。这个链接可以回答这个问题,但是你应该在答案中包含最重要的细节,因为任何链接都可能过时。