unity3d - 切换场景时网格会重新加载吗?

假设我有一个场景,其中包含多个网格,例如树、盒子等。我们称它为级别 1。

在我玩完第 1 级后,我会像这样切换到第 2 级。

SceneManager.LoadScene (1, LoadSceneMode.Single); //level2 scene index is 1

关键是 2 级使用与 1 级相同的网格。它们是否被卸载 -> 重新加载?

我不是在谈论 DontDestroyOnLoad ,因为我不需要 2 级场景中相同的游戏对象实例。

我说的是每个对象(网格)的模型数据,而不是它们的实例。我知道实例已被删除,但我认为 Unity 以某种方式知道下一个场景使用相同的网格并保留它们。我只需要知道在切换场景时 Meshes 是否被卸载和重新加载。

最佳答案

一旦您使用 LoadScene 更改场景,您没有调用 DontDestroyOnLoad 的对象将被销毁(就像您调用它们一样 Destroy全部),所以是的,重新加载。然后它们被销毁(如果它们出现在下一个场景中)它们被重新实例化。

如果您对场景中实例化的特定对象进行编辑,则这些编辑属于该对象。

如果您多次加载同一场景,那么这个特定对象将有您的编辑。但是,如果您加载具有此预制件的不同场景,则预制件将是一个没有编辑的新场景。

如果你想让所有实例化的对象都像这个对象,你必须编辑预制件。为此,您只需单击“应用”按钮即可。

这将使所有实例化的对象都具有编辑。

如果您希望某些对象进行编辑而另一些对象不进行编辑,您可以制作一个单独的预制件,只需将此对象的“名称”从层次结构拖到您的项目文件夹中。您刚刚创建了一个新的预制件,您可以使用它了。

另请记住,这不适用于在游戏中完成的编辑。这些是您在场景 View 中所做的编辑(作为开发人员而不是游戏玩家)。游戏 View 编辑(例如,如果玩家压扁立方体)在游戏结束后丢失。

https://stackoverflow.com/questions/41411062/

相关文章:

css - 由于非整数宽度,媒体查询运行异常

datetime - 如何在Lua中的给定日期时间添加天数

pointers - SGX - 受信任的网桥和受信任的代理有什么区别?

class - 为什么我不能定义 `delete` 方法?

c - 这是什么意思,我该如何纠正它 *** 检测到堆栈粉碎 *** : ./array1outpu

c - 这个函数被认为是可重入的吗?

python-3.x - 模块 'urllib' 没有属性 'request'

spring-mvc - 处理 org.thymeleaf.exceptions.TemplateI

haskell - Machines 和 Conduits(或其他类似库)之间的概念区别是什么?

haskell - 如何使 Pipe 与 Haskell 的 Pipe 库并发?