在Unity中,事件订阅是一种基于观察者模式的机制,允许对象间解耦通信。以下是详细说明和示例:
1. 基本概念
发布者(Publisher):定义并触发事件的对象。
订阅者(Subscriber):注册回调方法,响应事件的对象。
委托(Delegate):类型安全的函数指针,定义事件的签名。
2. 使用C#原生事件
步骤说明
定义委托和事件:在发布者类中声明事件。
订阅事件:订阅者在初始化时注册方法。
触发事件:发布者在特定条件下调用事件。
取消订阅:避免内存泄漏,通常在OnDisable中取消。


操作:在两个脚本中编写上述代码,分别挂载在两个游戏物体上。
分析:先在发布者里面,声明一个事件,通过代码来调用这个事件;在订阅者里面订阅这个事件。
3. 关键注意事项
空值检查:触发事件前检查if (event != null)。
取消订阅:避免因对象销毁导致错误。
参数传递:使用泛型UnityEvent<T>传递数据(需Unity 2019+支持)。
4. 实际应用场景
UI更新:血量、分数变化时刷新界面。
成就系统:玩家达成条件时触发解锁。
游戏流程:敌人死亡后生成新敌人或播放音效。
通过事件订阅机制,可以大幅降低代码耦合度,提升项目的可维护性和扩展性。
参考:DeepSeek


&spm=1001.2101.3001.5002&articleId=147247178&d=1&t=3&u=4336274fdf0246a6951b2a51878b6b92)
2364

被折叠的 条评论
为什么被折叠?



