一、游戏框架专用模式(最常用)

  • 1. 单例模式(Singleton)
    • 虽然 GoF 有,但 Unity 里用法完全不一样
    • 常见场景:全局管理器(GameManager / UIManager / AudioManager)
    • 常见写法:DontDestroyOnLoad / 静态实例 / 泛型单例
    • 进阶:线程安全单例 / 弱单例
  • 2. 组件模式(Component Pattern)
    • Unity 原生架构就是这个
    • 一个 GameObject 由多个 Component 组合
    • 替代继承,灵活扩展
    • 例子:Move / Attack / Health 分开挂载
  • 3. 事件总线 / 消息中心(Event Bus / Message System)
    • 比观察者模式更实用、更解耦
    • 脚本之间不会互相引用,发消息即可
    • 场景切换 / 伤害飘字 / 任务触发都用它
  • 4. 服务定位器(Service Locator)
    • 比单例灵活,更好测试
    • 统一获取各种服务:音频 / 存档 / 网络
    • 方便替换实现(测试用假服务)
  • 5. 依赖注入(DI)
    • 现在 Unity 高端项目标配
    • 常用框架:Zenject / VContainer
    • 自动依赖注入,不用 FindObjectOfType

二、游戏逻辑专用模式

  • 1. 有限状态机(FSM)
    • 角色 AI / 技能 / 游戏流程必备
    • 玩家状态:Idle / Run / Attack / Jump
    • 敌人 AI:巡逻 → 追击 → 攻击 → 逃跑
  • 2. 分层状态机 / 状态栈(HFSM / State Stack)
    • 比普通 FSM 更强大
    • 技能可以打断技能
    • 菜单弹出 / 暂停 / 过场都用栈
  • 3. 行为树(Behavior Tree)
    • 高级敌人 AI 标配
    • 常见:行为树插件 / NodeCanvas / Behavior Designer
  • 4. 目标导向行动规划(GOAP)
    • 更智能的 AI(比如生存游戏 / 策略游戏)
  • 5. 命令模式(Command Pattern)
    • 游戏里很实用
    • 技能按键 / 回放系统 / 撤销操作
    • 可序列化 / 可重做 / 可网络同步
  • 6. 对象池(Object Pool)
    • Unity 性能优化第一模式
    • 子弹 / 特效 / 怪物 / 碎片:不 Instantiate/Destroy
    • 复用对象,极大减少 GC
  • 7. 数据驱动(Data-Driven)
    • 技能表 / 道具表 / 关卡数据
    • 完全分离数据与逻辑

三、性能 & 资源管理模式

  • 1. 资源管理(Addressables / 资源加载模式)
    • 异步加载
    • 资源引用计数
    • Bundle 管理
  • 2. 脏标记(Dirty Flag)
    • 只在数据变化时更新
    • UI / 状态同步常用
  • 3. 批处理 / 数据局部性
    • ECS 核心思想
    • 把同类数据放一起,提高缓存命中率

四、ECS 专用模式(Unity DOTS)

  • 1. 实体 - 组件 - 系统(ECS)
    • 现代 Unity 核心架构
    • Entity(实体)
    • Component(数据)
    • System(逻辑)
  • 2. Archetype 模式
    • ECS 内部用来分组同类实体
  • 3. 任务并行 / 作业系统
    • IJobEntity
    • 多线程安全 / 无 GC

五、UI 专用模式

  • 1. MVC / MVVM / MVP
    • UI 框架必用
    • MVC:模型 - 视图 - 控制器
    • MVVM:数据绑定,UI 自动刷新
    • 适合:背包 / 技能面板 / 角色面板
  • 2. UI 栈(UI Stack)
    • 窗口层级管理
    • 返回键 / 关闭弹窗逻辑

六、网络与存档模式

  • 1. 快照(Snapshot)
    • 帧同步 / 回放 / 存档
    • 保存某一时刻完整游戏状态
  • 2. 状态同步 / 状态插值
    • 网络游戏平滑移动
  • 3. 序列化(Serializable)
    • Json / Binary / Protobuf 存档
    • 热更配置
  • 4. 双缓冲(Double Buffer)
    • 渲染 / 网络帧同步常用
    • 避免读写冲突

七、物理与动画模式

  • 1. 动画状态机(Animator Controller)
    • Unity 内置,本质就是状态机扩展
  • 2. 碰撞过滤 / 层掩码
    • Layer / Tag / 物理矩阵管理