## 9. 基于组件开发 游戏项目是一个超大型的软件工程,是各种设计模式的组合,在各种优秀的项目中,Unity和Unreal的组件式开发是最触动人心的,不仅客户端从中受益,近些年多个后端框架也开始使用组件式开发。 组件式开发的优势 组件式开发最核心的就是功能的拆分与组合,举个例子,基础角色(Player)负责显示模型、移动控制: 在纯面向对象中,Player如果要实现碰撞功能,就必须修改Player继承Collider 。 而基于组件,Player无需修改,只需动态添加Collider组件即可实现碰撞功能,当无需碰撞功能时,只需要移除Collider组件即可 。
游戏项目是一个超大型的软件工程,是各种设计模式的组合,在各种优秀的项目中,Unity和Unreal的组件式开发是最触动人心的,不仅客户端从中受益,近些年多个后端框架也开始使用组件式开发。
组件式开发的优势
组件式开发最核心的就是功能的拆分与组合,举个例子,基础角色(Player)负责显示模型、移动控制:
在纯面向对象中,Player如果要实现碰撞功能,就必须修改Player继承Collider。
而基于组件,Player无需修改,只需动态添加Collider组件即可实现碰撞功能,当无需碰撞功能时,只需要移除Collider组件即可。
本章参考Unity,以GameObject-Component形式,将之前编写的MeshFilter、MeshRenderer进行组件式开发重构。