导入层级
PlayCanvas 支持将模型及其网格作为实体层级导入场景,从而直接在编辑器中编辑各个网格。你可以为层级中的实体添加组件、挂接其他实体,以及移动、旋转和缩放实体。

如何启用
备注
新项目目前默认启用此功能。
打开 Project Settings。
向下滚动至 Asset Import,启用 Import Hierarchy:
导入模型
完整操作请参阅导入第一个模型和动画教程。
简而言之,将模型文件拖入资源面板后:

导入时会创建以下资源:

| 资源类型 | 说明 |
|---|---|
| 材质 | 导入模型使用的材质,已映射到网格实例。 |
| 纹理 | 模型文件内嵌的纹理(如有),会自动映射到关联材质。 |
| 模板 | 保存模型的场景层级。创建模板实例即可将模型加入场景。 |
| 容器(Container) | 保存模型全部网格的 GLB。 |
| 渲染(Render) | 引用容器资源中的网格,供 Render 组件在场景中渲染;也可供 Collision 组件用作物理网格。 |
更新模型
层级作为模板的一部分创建,因此更新模型可能会影响场景中的模板实例。
更新时,已添加到模板实体上的组件会保留,除非该实体所代表的网格实例已不再存在于更新后的模型中。
有一个例外:如果模板实体上添加了脚本组件,即使对应网格实例已不属于更新后的模型,该实体也会移至模板根实体下,以避免数据丢失。更新前位于其下的其他实体也会一并保留。
编辑器通过以下规则判断网格实例是新增还是已移除:
- 更新中的网格实例名称及其父网格实例名称都与现有实例及父实例匹配时,视为层级中的同一实例并进行更新。
- 更新中的网格实例名称不存在于现有层级时,视为新增,并向模板添加新实体。
- 模板中的现有实体按上述规则找不到匹配网格实例时,视为该网格实例已移除,并从模板中删除对应实体。但如上所述,若模板中的该实体添加过脚本组件,则会将其保留在根实体下;没有添加过脚本组件的实体则会删除。