最新要闻
- 速讯:30多万买豪华行政车 新一代凯迪拉克CT6内饰官图:超帅9k曲面屏上车
- 《王者荣耀》520亚瑟新皮肤太过250:开局一条狗 玩家直呼要买
- 马克思主义理论专业大学排名(马克思主义专业大学排名及分数线)_世界最新
- ChatGPT正式登陆iOS!但苹果却禁止员工使用-当前快报
- 科普:相机镜头的“放大倍率”是什么?
- 真我GT Neo5 SE“圣白幻影”配色亮相:颜值质感拉满|全球热推荐
- 观速讯丨南微医学:5月18日融资买入1167.84万元,融资融券余额2.55亿元
- 华为凌霄子母路由Q6E开启预售:499元 每个房间都Wi-Fi满格
- 电动车价格战还打不打?电池级碳酸锂翻倍式触底反弹 重返30万元/吨 当前聚焦
- 网传云南一公园多人用针扎小象引围观 官方回应:网友呼吁不要再看动物表演
- 好消息!罗马后卫切利克赛后表示:我很好,伤势并不严重
- 手机PC秒变16TB!华为家庭存储新款发布:再不怕断电了|焦点热议
- 当前热点-7.2万元 大疆发布Matrice 350 RTK旗舰无人机:升级20公里图传
- 算力达国际主流!飞腾国产服务器CPU腾云S2500被国家博物馆收藏 聚焦
- 接下来三十年还会继续快速贬值吗?-热点在线
- 重磅!ChatGPT正式发布App iOS客户端可下载
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
【天天速看料】ET介绍——事件机制EventSystem
(相关资料图)
事件机制EventSystem
ECS最重要的特性一是数据跟逻辑分离,二是数据驱动逻辑。什么是数据驱动逻辑呢?不太好理解,我们举个例子 一个moba游戏,英雄都有血条,血条会在人物头上显示,也会在左上方头像UI上显示。这时候服务端发来一个扣血消息。我们怎么处理这个消息?第一种方法,在消息处理函数中修改英雄的血数值,修改头像上血条显示,同时修改头像UI的血条。这种方式很明显造成了模块间的耦合。第二种方法,扣血消息处理函数中只是改变血值,血值的改变抛出一个hpchange的事件,人物头像模块跟UI模块都订阅血值改变事件,在订阅的方法中分别处理自己的逻辑,这样各个模块负责自己的逻辑,没有耦合。 ET提供了多种事件,事件都是可以多次订阅的:
- AwakeSystem,组件工厂创建组件后抛出,只抛出一次,可以带参数
Player player = ComponentFactory.Create(); // 订阅Player的Awake事件 public class PlayerAwakeSystem: AwakeSystem { public override void Awake(Player self) { } }
- StartSystem,组件UpdateSystem调用前抛出
// 订阅Player的Start事件 public class PlayerStartSystem: StartSystem{ public override void Start(Player self) { } }
- UpdateSystem,组件每帧抛出
// 订阅Player的Update事件 public class PlayerUpdateSystem: UpdateSystem{ public override void Update(Player self) { } }
- DestroySystem,组件删除时抛出
// 订阅Player的Destroy事件 public class PlayerDestroySystem: DestroySystem{ public override void Destroy(Player self) { } } Player player = ComponentFactory.Create (); // 这里会触发Destroy事件 player.Dispose();
- ChangeSystem,组件内容改变时抛出,需要开发者手动触发
// 订阅Player的Destroy事件 public class PlayerChangeSystem: ChangeSystem{ public override void Change(Player self) { } } Player player = ComponentFactory.Create (); // 需要手动触发ChangeSystem Game.EventSystem.Change(player);
- DeserializeSystem,组件反序列化之后抛出
// 订阅Player的Deserialize事件 public class PlayerDeserializeSystem: DeserializeSystem{ public override void Deserialize(Player self) { } } // 这里player2会触发Deserialize事件 Player player2 = MongoHelper.FromBson (player.ToBson());
- LoadSystem,EventSystem加载dll时抛出,用于服务端热更新,重新加载dll做一些处理,比如重新注册handler
// 订阅Player的Load事件 public class PlayerLoadSystem: LoadSystem{ public override void Load(Player self) { } }
- 普通的Event,由开发者自己抛出,可以最多带三个参数。另外客户端热更层也可以订阅mono层的Event事件
int oldhp = 10; int newhp = 5; // 抛出hp改变事件 Game.EventSystem.Run("HpChange", oldhp, newhp); // UI订阅hp改变事件 [Event("HpChange")] public class HpChange_ShowUI: AEvent{ public override void Run(int a, int b) { throw new NotImplementedException(); } } // 模型头顶血条模块也订阅hp改变事件 [Event("HpChange")] public class HpChange_ModelHeadChange: AEvent { public override void Run(int a, int b) { throw new NotImplementedException(); } }
- 除此之外还有很多事件,例如消息事件。消息事件使用MessageHandler来声明,可以带参数指定哪种服务器需要订阅。
[MessageHandler(AppType.Gate)] public class C2G_LoginGateHandler : AMRpcHandler{ protected override void Run(Session session, C2G_LoginGate message, Action reply) { G2C_LoginGate response = new G2C_LoginGate(); reply(response); } }
更具体的消息事件等到讲消息的时候再细细讲解了10. 数值事件,数值模块再讲解......, 更多的事件由自己去开发。
ET框架的逻辑就是由以上各种事件来驱动的。
ET开源地址地址:egametang/ET: Unity3D Client And C# Server Framework (github.com) qq群:474643097
关键词:
【天天速看料】ET介绍——事件机制EventSystem
聊聊Sentinel的熔断降级
速讯:30多万买豪华行政车 新一代凯迪拉克CT6内饰官图:超帅9k曲面屏上车
《王者荣耀》520亚瑟新皮肤太过250:开局一条狗 玩家直呼要买
马克思主义理论专业大学排名(马克思主义专业大学排名及分数线)_世界最新
ChatGPT正式登陆iOS!但苹果却禁止员工使用-当前快报
科普:相机镜头的“放大倍率”是什么?
真我GT Neo5 SE“圣白幻影”配色亮相:颜值质感拉满|全球热推荐
项目管理快速入门
实时:聊聊Mybatis集成Spring的原理
SSM整合使用 天天信息
观速讯丨南微医学:5月18日融资买入1167.84万元,融资融券余额2.55亿元
华为凌霄子母路由Q6E开启预售:499元 每个房间都Wi-Fi满格
电动车价格战还打不打?电池级碳酸锂翻倍式触底反弹 重返30万元/吨 当前聚焦
网传云南一公园多人用针扎小象引围观 官方回应:网友呼吁不要再看动物表演
好消息!罗马后卫切利克赛后表示:我很好,伤势并不严重
JMeter性能测试工具快速入门教程
【读财报】4月猪价微降 上市猪企销量、收入环比变动较小
手机PC秒变16TB!华为家庭存储新款发布:再不怕断电了|焦点热议
当前热点-7.2万元 大疆发布Matrice 350 RTK旗舰无人机:升级20公里图传
算力达国际主流!飞腾国产服务器CPU腾云S2500被国家博物馆收藏 聚焦
接下来三十年还会继续快速贬值吗?-热点在线
学系统集成项目管理工程师(中项)系列22c_信息化知识(下)_环球即时看
重磅!ChatGPT正式发布App iOS客户端可下载
环球聚焦:Epic大特卖开启!7.5折套娃优惠券来了 超多大作打骨折
莒南县应急管理局全面部署五一期间应急值守工作
每日精选:ET介绍——C#更好的协程
全球快看:01-module/分频器/激励写法
全球动态:DDR2 学习笔记(一)
全球今日报丨女子帮摔倒老人反被指认为肇事者:本人正能量回应获网友点赞
今年夏天逃不掉高温了:全球平均气温正在波动上升 全球今头条
今亮点!员工回怼加班遭光速开除!公司回应:矛盾来源并不是加不加班
环球热门:跟苹果不一样!说到生产力 华为才是真正懂中国人的
全球今日讯!《猫和老鼠》才是永远的神!凭什么能碾压AI作画?
冲击欧联冠军!穆里尼奥第六次进入欧战决赛,前五次全胜
全球今头条!盂县气象局发布雷暴大风蓝色预警【Ⅳ级/一般】【2023-05-19】
天天热消息:人寿学平险保障范围_人寿学平险报销范围
斗鱼第一季度总净营收为14.831亿元 同期相比下滑17.4%
《王者荣耀》游戏官方推出女装品牌 限量的五款连衣裙均未售罄
美国蒙大拿州签署法案封禁TikTok 将于2024年1月份执行
Xbox或将推出全新商业模式 提供游戏片段试玩或带广告的免费游玩
因原材料与运输成本上涨 可口可乐或将上演“涨价大戏”
我国科研人员成功研制量子计算超低温温度传感器 支持实时温度监测
因存在影响游戏竞技公平的缺陷 英雄联盟官方公布部分英雄禁用公告
谷歌将加入全新AI生成代码功能 由“文生代码”模型Codey提供支持
谷歌将联合东京大学与芝加哥大学共同研究量子计算机 预计投入超千万资金
世界首例泰坦尼克号3D全景扫描图像完成 只为探索沉船新发现
Knight突然开团,对位Faker出杀人书,JDG完美表现,28分钟击溃T1 天天热推荐
当前信息:下个月你工资卡里或将多一笔钱!领取高温津贴
号称保值的iPhone手机今年疯狂掉价!花5000多还不如买安卓|世界热点
Springboot集成Netty实现TCP通讯_天天速看料
【聚看点】誉的拼音和组词怎么写_誉的拼音
698元!华为儿童手表5发布:无网离线也能定位
数毛社Steam Deck测评:新三A大作性能表现开始吃紧
一次装修十年无忧!华为全屋智能4.0发布:业界首款空间穿越屏|全球热消息
每日聚焦:4K旗舰领衔!Vidda连发三款投影仪:画质、亮度直接拉满 3199元起
81岁老妪拒绝医美|今日报
海通恒信(01905):“21恒信G2”回售登记期为5月23日至25日
【世界独家】阿里巴巴核心业务:云智能部门将成为独立上市公司
热点!车企们 请别拿人命开玩笑
华为十大新品价格汇总:MateBook X Pro笔记本顶配1.4万元-天天即时
三大专业升级 华为MateBook 16s 2023来了:重度生产力标杆之作
业界首款支持高血糖!华为WATCH 4 Pro蔚蓝地球图赏 当前快看
全球热文:win7屏幕保护设置在哪里 win7屏幕保护设置
ET介绍——强大的基于.dotnet7+Unity3d的双端C#开源游戏框架-全球报资讯
热推荐:Java设计模式-外观模式
python包管理工具:Conda和pip比较
债市日报:5月18日
每日快讯!凯华推出“黑莓冰淇淋”轴体:加长轴心敲击更清脆
全球速读:北斗导航年产值超5000亿元!12nm芯片重大突破
摩托“骑士”双手离把耍酷还发抖音炫技 被“顺网线”找到_今亮点
安卓用户正在加速逃离:为何买苹果手机的人越来越多了?
1499元起 努比亚N5发布:6nm国产芯 今日报
煜邦电力: 关于回复上海证券交易所《关于北京煜邦电力技术股份有限公司向不特定对象发行可转换公司债券的审核中心意见落实函》的公告
热文:【一步步开发AI运动小程序】一、准备工作
python标准模块介绍 -Base64: Base64, Base85等数据编码|全球时讯
学系统集成项目管理工程师(中项)系列22b_信息化知识(中)
express框架的基本使用 环球新资讯
幺妹带你慢慢耍歌词完整版_请问老师们有谁知道幺妹带你慢慢耍歌词曲谱 这首歌确实不错好听
拒绝录用有文身员工 老板回应被威胁:看不惯年轻人必教育到底
滚动:《塞尔达传说:王国之泪》掉帧严重:任天堂Switch性能不够用了
排面!理想L7成卢森堡大使馆官方用车:“这是中国最棒的车”_关注
环球今日讯!预制半成品、来“料”加工、网上销售 普陀警方捣毁一伪造、买卖身份证件黑色产业链
论文、专利、文献检索及图像数据工具总结 时讯
工控老曹说——TSN标准化如何赋能多领域以太网新发展
焦点讯息:2023最佳python编辑器和IDE
git 常用指令-当前聚焦
今日精选:万家基金尹诚庸离任6只基金
iQOO首款降噪无线耳机来了:将与Neo8系列同步推出
悲惨的5G基站:你敢建?我就敢拆!
害怕失去灵魂?大众汽车:我们没使用华为车机软件|环球快讯
焦点热议:小黑旗舰升级13代酷睿!联想2023款ThinkPad X1 Carbon国内发布
世界快看点丨马斯克再度催生:再不生娃人类就要灭亡了
苏联题材科幻动作游戏《原子之心》Steam 史低促销
微服务圣经1:零基础搭建一套SpringCloud微服务脚手架(SpringCloud+Dubbo+Docker+Jenkins) 环球速递
低代码开发——进最热的赛道,啃最硬的骨头-视焦点讯
Python字符串替换的3种方法-播资讯
Django SQL注入漏洞复现 (CVE-2022-28347)
每日机构分析:5月18日
天天热资讯!斗罗大陆:为何唐三成为海神后,只赠予了吉祥一个神赐魂环,