0.前言
本篇将实现一个简单的事件管理器(虽然简单,但是绝对好用!)和喂食互动。
1.事件管理器
先说说,为什么会有这么一个事件触发器。
Unity3d中,MonoBehaviour提供了SendMessage和SendMessageUpwards来在MonoBehaviour之间传递消息。而在非MonoBehaviour(一般的类)之间传递消息,需要先得到引用,再进行函数的调用。SendMessage和SendMessageUpwards方法,使用了反射的方式来找接收的函数,不仅效率慢,消息传来传去,也容易变得混乱。
而一般的类之间,由于需要先获得引用才能调用函数,使得代码的耦合性较高。
因此,为了提高效率和解耦合,添加一个事件管理器。
1.添加EventMgr
在scripts中添加EventMgr.cs

打开EventMgr.cs,删除MonoBehaviour相关的东西,只留如下内容:
using System.Collections;
using System.Collections.Generic;
public class EventMg
本篇博客介绍了在Unity3D中如何实现一个简单的事件管理器,以提高效率和解耦合。事件管理器采用泛型单例模式,支持添加、删除和触发事件。此外,还详细讲述了喂食功能的设计和实现,包括生成鱼食、鱼游向食物及食物销毁的逻辑,涉及到FoodMgr、FoodAI、MoveFlag、SpeedFlag、RotateFlag等多个脚本的修改和新增。通过这些功能,玩家可以点击屏幕生成食物,鱼儿会游向食物并吃掉它,增加游戏的互动性。
订阅专栏 解锁全文
735

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



