use*_*108 41 game-engine unity-game-engine scene
我对Unity3d中的场景有些困惑,我无法找到任何有关它们的资源.
Hei*_*bug 60
什么时候应该使用场景?例如,在平台游戏中,每个级别都必须是不同的场景?主菜单会是一个场景吗?
关于这一点没有一般规则.从理论上讲,整个游戏可能只有一个场景.如何组织场景完全取决于您,并且通常取决于您正在创建的游戏类型.
我认为使用场景至少要考虑3个功能:
GameObjectsComponents可以叠加场景吗?
是的,您可以使用LoadAdditive.不幸的是,一旦将两个场景都加载到存储器中,就没有自动的方法来区分属于一个或另一个的对象.因此,如果您在第二级环境中加载添加剂,则由您来跟踪以前的环境,并在需要时明确销毁它.
资产如何在场景之间起作用?它们是否与每个场景相关联,每次都必须重新加载.可以指定何时不再需要资产?
默认情况下GameObject,一旦加载了新场景,每个场景都将被销毁(除非您使用加法场景加载).GameObject在场景中生存的一种方法是使用DontDestroyOnLoad标记它.
如果您需要共享GameObject的特定"配置",您可以将其存储为预制件,并在场景中引用它(但请记住,在场景中它曾经是一个预制实例,因此GO与预制件共享初始序列化而不是覆盖属性,但同一预制件的2个实例是不同的对象).
如何在场景之间的场景/界面之间发送数据?
有几种方法,具体取决于您要共享的持久数据类型.
GameObject实例,让对象继续使用DontDestroyOnLoad.GameObject您可以考虑在AssetDatabase中存储ScriptableObject并引用它.还有其他两种我不喜欢的方式,但只是引用它们:
这是一个广泛的主题顺便说一句,我希望这个答案可以是一个相当不错的概述.