Unity技术-GameFramework文档系列(四)- 事件订阅
- 点击跳转=>GameFramework文档系列(一)- 简介和初步使用
- 点击跳转=>GameFramework文档系列(二)- 场景相关
- 点击跳转=>GameFramework文档系列(三)- 日志管理和UI
- 点击跳转=>保姆式Cocos合成大西瓜案例
- 点击跳转=>养不起真猫,就用代码吸猫-Unity粒子实现画猫咪
- 点击跳转=>Unity粒子特效系列-龙卷风预制体做好了,unitypackage包直接用!
- 点击跳转=>姐姐喊我解锁套娃新技能:FairyGUI在Unity中实现List嵌套List/立体画廊等,玩出花儿来
- 点击跳转=>Unity新手必备5款宝藏插件–价值上千元白嫖最新版
- 点击跳转=>爆肝万字C#基础入门大总结【建议收藏】
- 点击跳转=>Android修行手册-玩转TextView,想不到有这么多属性
- 点击跳转=>【万字】修行Android Studio技巧到出神入化,快速涨薪【建议收藏】
- 点击跳转=>Android修行手册之从头到尾学Kotlin【全】
- 点击跳转=>熬夜再战Android从青铜到王者-开发效率插件篇
本文约5.3千字,新手阅读需要13分钟,复习需要7分钟 【收藏随时查阅不再迷路】
👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单。
👉前提
这段时间学习个Unity框架并且准备应用到实际项目中,但是因为作者神龙见首不见尾,没有什么比较详细的文档,学习困难,不过好在作者将框架所有内容开源了,再次记录下学习过程。
👉实践过程
😜事件订阅
既然咱要用她就一定要先说说她的优点:
她简化了组件间的通信,分离了事件的发送者和接收者,大大降低了耦合度。举个栗子:
前段时间的【黑悟空】实机演示,比如悟空的状态,经验值,怪物的血量等内容,会随时有着对应的变化,比如怪物死亡,人物获得经验以及结束判断等等,一次事件发生N多事件要对应变化,要是一个个主动修改你调我/我调你的,调来调去逻辑线不混乱才怪,又不玩捆绑S。所以我们要由主动变被动,我发个广播,谁想听我号令谁就注册下,不想听你不注册没影响,解耦效果显著。小空是Android出身,Android里的EventBus订阅用的贼爽,所以第一时间就学习了这个框架的订阅事件
这就达到了,某件事件变化,执行了注册的地方会收到消息,自己处理自己的逻辑。被订阅者发,多个订阅者接收。
来来来,我们看看到底怎么使用;
😜第一步
需要先获得Event组件
EventComponent eventComponent = UnityGameFramework.Runtime.GameEntry.GetComponent();
😜第二步
订阅事件
eventComponent.Subscribe(OpenUIFormSuccessEventArgs.EventId, InitUISuccess);
订阅事件第一个参数是内置的,【OpenUIFormSuccessEventArgs】是初始化打开界面成功事件,第二个参数是你自己声明的函数,界面完成后会触发这个函数。官方还有更多内置函数,详情看下方表格图。
😜第三步
加载UI
😜第四步
在回调函数中打印下,看看有没有接收到消息。
😜第五步
记得在OnLeave方法解除注册昂。你都离开这个流程了,就不要再费心去监听别的事情了。否则会造成内存垃圾昂。
运行结果:
成了。就这么简单?爱作妖的小空这时候又有想法了:实际开发不可能这么简单,可能有N多个UI,N多个时间,这要是多了又是什么样的?不急,接着试验
一运行发现哎都回调了方法啊。这个不错,如果再利用第四个参数传递自定义数据,返回后根据不同的数据做不同的处理岂不快哉。
666,但是还有个疑问,仔细看上面【OpenUIForm】里面的第三个参数-优先级,我尝试输入不同的级别运行后发现并没有想象中的那样【这是一只猫】最先执行。小空就去赶紧看了官方案例,又有发现:官方案例区分的是资源优先级-字体、声音音乐/场景等这种大类别。应该不是用于小小的同级(比如都是UI)。这个留待后续再深入。
小空学到这感觉基本使用可以了,这和Android的EventBus类似啊,在以后的实践学习中希望能发现框架也有EventBus的粘性事件和跨组件监听。补充一个框架内置组件图:
怎么样?使用起来是不是很简单?仿佛在那遥远的山村听到了有人说,
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。
相关文章
- Unity【Multiplayer 多人在线】- Socket 通用服务端框架(五)、Messenger 事件发布、订阅系统
- 【Java AWT 图形界面编程】事件处理机制 ③ ( AWT 中常见的事件和事件监听器 | 低级事件 | 组件事件 | 窗口事件 | 鼠标事件 | 高级事件 | 动作事件 | 事件监听器 )
- Oracle 等待事件 Disk file operations I/O 官方解释,作用,如何使用及优化方法
- Oracle 等待事件 gc buffer busy acquire 官方解释,作用,如何使用及优化方法
- Oracle 等待事件 Enqueues:TE,ExtendTable 官方解释,作用,如何使用及优化方法
- JS绑定事件的3种方式
- 官方:阿里女员工被性侵事件已立案侦查
- jquery获取焦点和失去焦点事件代码
- jquery新建的元素事件绑定问题解决方案
- ZendFramework2.0事件管理器(TheEventManager)入门教程