Appearance
预制体系统
预制体系统是什么
Prefab 可以理解为“可复用的 GameObject 模板”。比如敌人、子弹、道具、UI 面板、爆炸特效,都很适合做成预制体。
核心区别:
c
Prefab Asset = Project 面板里的模板文件
Prefab Instance = 场景里从模板拖出来的对象如果你改 Prefab Asset,所有没有单独覆盖的实例都会跟着变。 如果你只改场景里的某个实例,那就是 Override 覆盖。
常用操作
Override:只改当前实例。 Apply:把当前实例的改动写回 Prefab 模板。 Revert:放弃当前实例的覆盖,恢复模板默认值。 Unpack:断开和 Prefab 的连接,变成普通 GameObject。
脚本生成 Prefab
运行时生成敌人、子弹、特效,通常这样写:
c
[SerializeField] private GameObject bulletPrefab;
void Shoot()
{
Instantiate(bulletPrefab, transform.position, transform.rotation);
}销毁对象
Destroy(gameObject);学习顺序建议:先做一个 Enemy Prefab,拖多个实例到场景里,改其中一个观察 Overrides,再练习 Apply/Revert,最后用 Instantiate 在运行时生成它。
收到,我后面每个 Unity 模块都会附上参考链接。刚才“预制体系统”的参考链接补在这里:
官方参考链接
- Unity Manual: Prefabs (docs.unity3d.com)
- Unity 中文手册:预制件 (docs.unity3d.com)
- Prefab Instance Overrides (docs.unity3d.com)
- Prefab Variants (docs.unity3d.com)
- Nested Prefabs (docs.unity3d.com)
- Instantiating prefabs at runtime (docs.unity3d.com)
- Object.Instantiate API (docs.unity3d.com)
- Object.Destroy API (docs.unity3d.com)