欢迎光临散文网 会员登陆 & 注册

《Unity性能优化》系列课程笔记——第玖节

2022-03-15 22:35 作者:Metaverse大衍神君  | 我要投稿

2022年3月15日第玖讲 预制体

预制体Prefab

Unity中的预制体是用来存储游戏对象、子对象及其所需组件的可重用资源,一般来说预制体资源可充当资源模版,在此模版基础上可以在场景中创建新的预制体实例。

使用预制体的好处

  • 由于预制体系统可以自动保持所有实例副本同步,因此可以比单纯地简单复制粘贴游戏对象做到更好的对象管理。

  • 此外通过预制体嵌套(Nested Prefabs)可以将一个预制体嵌套到另一个预制体中,从而创建多个易于编辑的复杂游戏对象层级视图。

  • 可以通过覆盖各个预制体实例的设置来创建预制体变体(Prefabs Variant),从而可以将一系列覆盖组合在一起形成有意义预制体的变化。

嵌套预制体与单预制体相比的优点与缺点

  • 优点:

    • 嵌套预制体方便预制体管理,方便资源重复利用,易于统计场景复杂度

    • 美术制作时可以比较合理的分配UV,和贴图利用率

    • 方便关卡设计人员发挥,充分合理利用资源

    • 嵌套预制体比较方便利用工具做LOD,LOD效果也比较好

    • 嵌套预制体修改方便,只需修改子预制体就可以做到所有嵌套预制体同步

    • 比较方便做场景遮挡剔除,可以做到精细的遮挡剔除优化效果

  • 缺点:

    • 手动做Bundle依赖时要按Scene方式处理,依赖关系较为复杂

    • 可能会增加材质数量与Drawcall数量

    • 不太适合做大规模远景对象。

    • 美术与关卡设计人员要充分考虑组合复杂度与特例场景显示,避免重复性和单一性,需要更多的沟通成本

使用Prefab变体的一些限制

  • 不能改变本体Prefab游戏对象 (GameObject)层级

  • 不能删除本体Prefab中的游戏对象,但可以通过Deactive游戏对象来达到与删除游戏对象同样的效果

  • 对于Prefab变体要保持其Override属性的变化,不能通过Apply to base把这些变化应用到本体Prefab上,这样会破坏基础Prefab的结构和功能。


《Unity性能优化》系列课程笔记——第玖节的评论 (共 条)

分享到微博请遵守国家法律