组件模式 (Component Pattern)

Unity/Godot的灵魂设计:不是「角色继承树」而是「角色=一堆组件」。移动+渲染+碰撞各自独立,组合出千变万化的行为。

组件模式是现代游戏引擎(Unity、Godot、Unreal)的架构基石。核心思想:不使用深层继承树(Player→Character→GameObject→Entity),而是把功能拆成独立组件:Transform 组件管位置、Renderer 组件管显示、Collider 组件管碰撞——把它们「挂」到同一个 GameObject 上,组合出千变万化的行为。

为什么优于继承?因为继承是纵向的、僵化的。如果 Player 和 Enemy 都需要「能受伤」的功能,用继承的话需要找到一个共同父类——如果 Enemy 继承自 AIAgent,Player 继承自 Controllable,两个分支毫无交集,代码就得写两遍。而组件模式下,加一个 Health 组件即可,Player 和 Enemy 都能挂。

实践:Unity 中每个 MonoBehaviour 脚本就是一个组件。设计原则:每个组件只做一件事——Health 只管血量,Movement 只管移动,Attack 只管攻击。组件之间通过 GetComponent 或事件系统通信。

💡 微信搜索「别装没看见」小程序,44+ 开发技巧随时翻阅