Unity 2018.3 Prefab Workflows

"Unity 2018.3全新Prefab预制件系统"

Posted by Ciel on March 18, 2019

Unity 2018.3全新Prefab预制件系统

PrefabMode中编辑预制件

  • 三种方法进入Prefab Mode (编辑的是Prefab Asset而不是Prefab Instance,修改会直接保存到实际Prefab中)
  1. Hierarchy -> “>”

  2. Inspector -> Open

  3. Project -> Open

  • 编辑Prefab Mode Environment,设置自定义的场景

\img\in-post\prefab\prefab-mode-environment

  • UNpack Prefab

\img\in-post\prefab\prefab-mode-unpack

NestedPrefabs嵌套式预制件

  • 不允许在Hierarchy中对子预制体进行删除,只能进行添加

\img\in-post\prefab\cannot-prefab

  • 嵌套式预制体对最终包体大小影响

\img\in-post\prefab\prefab-baoti

PrefabOverrides预制件覆盖重载

\img\in-post\prefab\prefab-override0

  • 在Prefab状态下修改参数或新加入元素,可以进行Prefab Override。

    \img\in-post\prefab\prefab-override2

    \img\in-post\prefab\prefab-override

    • 右键标亮的修改项,选择Apply to XXX,覆盖到指定层级的Prefab中,只有在这个层级下的Prefab才会应用修改
    • 单击Overrides,Apply All整体应用
    • Revert放弃修改,恢复到原始状态
  • 如果某个Prefab实例或者Prefab Variant上存在Override,那么在Prefab Mode中修改资源时,将不会覆盖Prefab实例或者Prefab Variant上的Override

PrefabVariants预制件变体

\img\in-post\prefab\prefab-variant

  • 把Prefab再次拖到Project面板会产生选项

\img\in-post\prefab\prefab-create

  • Prefab的根物体是普通GameObject,Prefab Variant的根物体是Prefab

\img\in-post\prefab\prefab-root

  • Variant外可以再生成Variant

\img\in-post\prefab\prefab-box

  • 在变体的Prefab Mode中,选中Prefab最上层时的Overides下覆盖按钮变成了Apply All to Base,此命令会使用变体的修改去覆盖原始Prefab,请千万明确此操作确实是你想要的再去点。通常变体是不会去覆盖本体的,否则就失去了变体的意义了

\img\in-post\prefab\prefab-applybase

使用脚本API操作Prefab