GameUnity 2.0 文档(一) 事件机制
新版本和旧版本一样,有socket事件和内部事件。区别在于,你只要一个监听就可以

消息协议规则:

用类名标记协议的好处是什么? 是利用反射机制来处理每个消息。
程序启动的时候,会读取所有类名,并字典保存,也就是一次反射,消息传递就不会再次反射获取类了,直接 字典中拿取。这是目前最先进的做法
大家看看一个案例

以上代码是 unity 按钮 发送的 三个 通知服务器事件。
发送规则 是: 协议头 + json内容+消息结尾符(固定的)
大家注意看消息协议头。
服务器 相关的如下:

协议定义的字符串 和 服务器类名是一样的。
我们点击去看看:

这是一个 私聊的协议类,客户端发送私聊后,服务器创建 同样的类名,和继承。就可以在这里进行逻辑操作了。
再看一个服务器类:这个类是用来确定开启,或 客户端发送错误的协议,或内部出错,或客户端关闭。

最后,很多人担心服务器性能好不好,在这里,我不想黄婆卖瓜。客户端我全部重写,粘包异常断开等等都封装好了,用户只要写和服务器交互的逻辑通信就ok了。

最后简单的 互动了一次通信并且 先关闭服务器的测试,当然你们何用测试发错消息,或连续发包等,都是完美的。
多元化的 设计,让你也可以用其他语言 开发服务器,客户端是不用改写的。

事件部分就介绍到这里,文章字数限制,没提到的,可以按照 旧版本那样操作。使用过早期版本的,基本不需要改动,就可以继续开发项目了。
下一篇开始,我将陆续讲解 2.0下的 特别组件。带你玩转 大公司核心技术 一键操作。
。。。。。。。。。。。。。。。。。写在最后,和大家一样,白天工作,利用空余时间编写框架,不足之处难免被 人喷,这也是国情。
百度上 零碎的知识很多,但新人往往不能很好的总结组合,导致学了忘,忘了学。最终也 无法深入做一个东西。
我架构框架的目的是,让零碎的知识组合起来,你只要一行代码,就能实现 别人几十行上百行,甚至更多时间研究苦死的代码。
这个社会真大神其实不多,大部分所谓的大神都是 小白层次太低,而被误导出来的大神,而我的自己的目的,是 为了 成为 大神眼里的 大神。
为此 继续完善框架,继续看更深层次的代码。不以低层次夸赞为喜,不易高层次吝啬而恼,船到桥头 我能行。
GameUnity 2.0 文档(一) 事件机制的更多相关文章
- GameUnity 2.0 文档(五) 人工智能之---------------Flocking算法 (聚集,分散,列队 )
		AI是游戏的灵魂,是人物的智商,是让玩家觉得游戏是否幼稚的重要判断功能,下面我将介绍国外流行,国内不行的,ai算法. 主要介绍 Flocking 和 Reciprocal Velocity Obs ... 
- GameUnity 2.0  文档(三)  纸片人八方向
		DirectSprite类 有别于 上篇文档出现的 AnimationSprite类 (从头播放到尾) 这个类根据 path的图,如果是 8*8 64个图 八方向,可以设置长宽和 角度 角度 代表 8 ... 
- GameUnity 2.0  文档(二)  纸片人系统
		本想快速的 把 之前写的类库,一股脑的 给大家 ,但又觉得,如 msdn那样的 文档,并不能给 初学者 所能接受. 因为 大部分人 对 api 还是比较陌生,也不愿意 去研究和组合. 那么 今天我选用 ... 
- GameUnity 2.0 文档(四) 网格+四叉树 最优碰撞检测
		在写之前,必须对 前一篇文档补充一下. Camera2DAngle类是 摄像机旋转 2d人物360度,PlayerMove是人物移动. 这两个类 都可以 360 ° 场景旋转人物也跟着旋转. 但不能 ... 
- day56 文件 文档处理,事件
		前情回顾: 1. 前情回顾 0. 选择器补充 - 属性选择器 - $("[egon]") - $("[type='text']") - $("inpu ... 
- jQuery 选择器     筛选器     样式操作     文本操作     属性操作     文档处理     事件     动画效果     插件     each、data、Ajax
		jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ... 
- Beautiful Soup 4.2.0 文档
		Beautiful Soup 4.2.0 文档 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方 ... 
- vue mand-mobile按2.0文档默认安装的是1.6.8版本
		vue mand-mobile按2.0文档默认安装的是1.6.8版本 npm list mand-mobilebigbullmobile@1.0.0 E:\webcode\bigbullmobile` ... 
- jQuery文档就绪事件
		[jQuery文档就绪事件] 为了防止文档在完全加载(就绪)之前运行 jQuery 代码.如果在文档没有完全加载之前就运行函数,操作可能失败. $(document).ready(function() ... 
随机推荐
- MVC jsonModelBuilder
			/// <summary> /// JsonModelBinderAttribute /// author:BearLee /// 2015/5/20 11:48:40 /// </ ... 
- python--随机函数(random,uniform,randint,randrange,shuffle,sample)
			random() random()方法:返回随机生成的一个实数,它在[0,1)范围内 运用random()方法的语法: import random #random()方法不能直接访问,需要导入rand ... 
- 【Machine Learning in Action --4】朴素贝叶斯过滤网站的恶意留言
			背景:以在线社区的留言板为例,为了不影响社区的发展,我们需要屏蔽侮辱性的言论,所以要构建一个快速过滤器,如果某条留言使用了负面或者侮辱性的语言,那么就将该留言标识为内容不当.过滤这类内容是一个很常见的 ... 
- MyBatis 错误:Invalid bound statement (not found)
			错误: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.zr.msgg.per ... 
- js常用API 数据类型  基本类型,基本包装类型,引用类型  Object String Array Boolean Number  Date  Math
			数据类型 变量.作用域及内存 基础类型(primitive value):Undefined.Null.Boolean.Number和String.这些类型在内存中分别占用固定大小的空间,他们的值保存 ... 
- Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
			http://c.biancheng.net/cpp/shell/ 1.打印 2.运算符 
- 【01-14】hibernate时间生成
			package rugal.sample.core.entity; import java.util.Date; import java.util.UUID; import javax.persist ... 
- Android测试日志文件抓取与分析
			1.log文件分类简介 实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump,还有高通平台的还会有QXDM日志 状态信息的有:adb shel ... 
- leetcode83,删除有序链表中的重复元素
			Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ... 
- elasticsearch简介
			elasticsearch 摘要: 1 es是一个分布式全文搜索引擎.特定是:无中心化,实时,扩展性强. 2. es有几个好的概念或者特点:(1)cluster 集群无中心化.(2)shards.分片 ... 
