假设我有一个包含树,盒子等几个网格的场景,我们可以将它称为1级。
在我完成第1级后,我会像这样切换到第2级。
SceneManager.LoadScene (1, LoadSceneMode.Single); //level2 scene index is 1
事物是2级使用相同的网格级别1使用。他们是否被卸载 - >重新加载?
我不是在谈论DontDestroyOnLoad,因为我不需要在2级场景中使用相同的GameObjects实例。
我在谈论每个对象(网格)的模型数据,而不是它们的实例。我知道实例已被删除,但我认为Unity肯定知道下一个场景使用相同的网格并保留它们。我只需要知道在切换场景时是否卸载并重新加载网格。
答案 0 :(得分:2)
使用DontDestroyOnLoad
更改场景后,您不会调用LoadScene
的对象将被销毁(就好像您对它们全部调用Destroy
一样),所以是的重新加载。然后它们被销毁(如果它们出现在下一个场景中),它们将被重新实例化。
如果您对场景中实例化的特定对象进行了编辑,则这些编辑属于此对象。
如果您多次加载相同的场景,则此特定对象将进行编辑。但是,如果您加载具有此预制件的其他场景,则预制件将是一个没有编辑的新预制件。
如果您希望实例化的所有对象都像此对象,则必须编辑预制件。要执行此操作,只需单击" apply"按钮。
这将使所有实例化的对象都具有编辑功能。
如果你想要一些对象进行编辑而有些对象没有它们,你可以制作一个单独的预制件,只需拖动" name"此对象从层次结构到您的项目文件夹。您刚刚创建了一个新的预制件,您可以使用它。
另请注意,这并不适用于在游戏中完成的修改。这些是您在场景视图中进行的编辑(作为开发人员而非游戏玩家)。游戏结束后,游戏视图编辑(例如,如果玩家躲过一个立方体)会丢失。