U
Unity
星辰学院
首页
课程表
章节导览
第 1 课
返回主站
首页
/
第 17 章 · 发布与进阶修炼
/
第 291 课
LESSON 291 · 发布与进阶修炼
进阶修炼:设计模式入门
设计模式入门完成。下一课学数据驱动。
⏱ 约 16 分钟
📊 难度:
入门
🗂 第 17 章 · 发布与进阶修炼
📍 第 291 / 300 课
课程进度
291 / 300
🎯
本节学习目标
掌握核心模式
理解模式应用
实战运用
🚀
课程导读
“高手都用的套路”叫设计模式。本课讲游戏开发最常用的几个,个个都在前面用过。
◆
单例与对象池
两个“保底”模式。
【单例 Singleton】全局唯一实例(第 86 课):
AudioManager/GameManager 都用过。
【要点】Awake 检查、DontDestroyOnLoad。
【对象池 Object Pool】复用对象省 GC(第 269 课):
子弹/特效/敌人。
【要点】Get/Release/重置。
【关系】这两个是 Unity 里“出场率最高”的模式。
【应用】你现在就能手写(前面都用过)。
【完成】两个“老朋友”回顾。
【注意】单例别滥用(全局状态难测)。
【推荐】管理器用单例、高频物用池。
💡
单例(全局一个)+ 对象池(循环复用)= 游戏两大基础模式。
◆
观察者与状态机
两个“进阶”模式。
【观察者 Observer】事件/订阅(第 274 课):
数据变化通知多个订阅者(UI/音效)。
【要点】事件发布/订阅/取消订阅。
【工厂 Factory】创建对象封装:
public static class WeaponFactory { public static Weapon Create(string type) { ... } }
【要点】创建逻辑集中、便于扩展。
【状态机 State Machine】对象在不同状态(第 131 课):
敌人(巡逻/追击/攻击)、玩家(正常/受伤/死亡)。
【代码状态机】
enum State { Patrol, Chase, Attack }
State state;
void Update() { switch(state) { case State.Patrol: Patrol(); break; ... } }
【完成】四个模式“齐了”。
【理解】模式是“思路”不是“模板”,按需套用。
【推荐】状态机是 AI 和复杂角色必备。
【实战】用代码状态机重构敌人 AI(第 211/258 课)。
✅
模式一句话:观察者(通知)、工厂(创建)、状态机(行为切换)。都会=合格开发者。
⚠
常见错误与排查
⛔
错误:
状态机状态多到乱?
原因:
全塞 switch
解决:
每个状态一个类(状态模式,进阶);或用 Animator 状态机。
★
动手练习
课后小任务(做出来才算真的学会)
用代码状态机重构敌人
用工厂模式创建武器
回顾单例与对象池
✓
本节小结
设计模式入门完成。下一课学数据驱动。
标记为已完成
完成打卡后,主站会实时更新你的学习进度 🎯
← 上一课
进阶修炼:面向对象编程
下一课 →
进阶修炼:数据驱动开发
↑