新版本和旧版本一样,有socket事件和内部事件。区别在于,你只要一个监听就可以

消息协议规则:

用类名标记协议的好处是什么? 是利用反射机制来处理每个消息。

程序启动的时候,会读取所有类名,并字典保存,也就是一次反射,消息传递就不会再次反射获取类了,直接 字典中拿取。这是目前最先进的做法

大家看看一个案例

以上代码是 unity 按钮 发送的 三个 通知服务器事件。

发送规则 是: 协议头 + json内容+消息结尾符(固定的)

大家注意看消息协议头。

服务器 相关的如下:

协议定义的字符串 和 服务器类名是一样的。

我们点击去看看:

这是一个 私聊的协议类,客户端发送私聊后,服务器创建 同样的类名,和继承。就可以在这里进行逻辑操作了。

再看一个服务器类:这个类是用来确定开启,或 客户端发送错误的协议,或内部出错,或客户端关闭。

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

最后简单的 互动了一次通信并且 先关闭服务器的测试,当然你们何用测试发错消息,或连续发包等,都是完美的。

多元化的 设计,让你也可以用其他语言 开发服务器,客户端是不用改写的。

事件部分就介绍到这里,文章字数限制,没提到的,可以按照 旧版本那样操作。使用过早期版本的,基本不需要改动,就可以继续开发项目了。

下一篇开始,我将陆续讲解 2.0下的 特别组件。带你玩转 大公司核心技术 一键操作。

。。。。。。。。。。。。。。。。。写在最后,和大家一样,白天工作,利用空余时间编写框架,不足之处难免被 人喷,这也是国情。

百度上 零碎的知识很多,但新人往往不能很好的总结组合,导致学了忘,忘了学。最终也 无法深入做一个东西。

我架构框架的目的是,让零碎的知识组合起来,你只要一行代码,就能实现 别人几十行上百行,甚至更多时间研究苦死的代码。

这个社会真大神其实不多,大部分所谓的大神都是 小白层次太低,而被误导出来的大神,而我的自己的目的,是 为了 成为 大神眼里的 大神。

为此 继续完善框架,继续看更深层次的代码。不以低层次夸赞为喜,不易高层次吝啬而恼,船到桥头 我能行。

GameUnity 2.0 文档(一) 事件机制的更多相关文章

  1. GameUnity 2.0 文档(五) 人工智能之---------------Flocking算法 (聚集,分散,列队 )

    AI是游戏的灵魂,是人物的智商,是让玩家觉得游戏是否幼稚的重要判断功能,下面我将介绍国外流行,国内不行的,ai算法. 主要介绍  Flocking  和 Reciprocal Velocity Obs ...

  2. GameUnity 2.0 文档(三) 纸片人八方向

    DirectSprite类 有别于 上篇文档出现的 AnimationSprite类 (从头播放到尾) 这个类根据 path的图,如果是 8*8 64个图 八方向,可以设置长宽和 角度 角度 代表 8 ...

  3. GameUnity 2.0 文档(二) 纸片人系统

    本想快速的 把 之前写的类库,一股脑的 给大家 ,但又觉得,如 msdn那样的 文档,并不能给 初学者 所能接受. 因为 大部分人 对 api 还是比较陌生,也不愿意 去研究和组合. 那么 今天我选用 ...

  4. GameUnity 2.0 文档(四) 网格+四叉树 最优碰撞检测

    在写之前,必须对 前一篇文档补充一下. Camera2DAngle类是 摄像机旋转 2d人物360度,PlayerMove是人物移动. 这两个类 都可以 360 °  场景旋转人物也跟着旋转. 但不能 ...

  5. day56 文件 文档处理,事件

    前情回顾: 1. 前情回顾 0. 选择器补充 - 属性选择器 - $("[egon]") - $("[type='text']") - $("inpu ...

  6. jQuery 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each、data、Ajax

    jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ...

  7. Beautiful Soup 4.2.0 文档

    Beautiful Soup 4.2.0 文档 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方 ...

  8. 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` ...

  9. jQuery文档就绪事件

    [jQuery文档就绪事件] 为了防止文档在完全加载(就绪)之前运行 jQuery 代码.如果在文档没有完全加载之前就运行函数,操作可能失败. $(document).ready(function() ...

随机推荐

  1. PHP中使用CURL(六)

    curl常用的几个例子 1.抓取无访问控制文件 <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://local ...

  2. docker的一些命令

    转自:http://blog.csdn.net/wsscy2004/article/details/25878363 查看容器的root用户密码 docker logs <容器名orID> ...

  3. ubuntu下安装UltraEdit

    在windows下常年使用UltraEdit来查看log,现在突然切换到ubuntu下,系统自带的Text Editor相当不适应:只有自己安装了. 首先,需要下载安装包,可以去:http://www ...

  4. js iframe跨域访问

    1.什么是跨域? 2.前台解决跨域几种方法 2.1 动态创建script 2.2 使用document.domain 2.3使用HTML5新属性postMessage 2.4 利用iframe和loc ...

  5. apache 不执行PHP,显示代码

    首先检查是否安装PHP,已经安装过的话,先执行 locate libphp5.so 查看APACHE是否有SO文件,如果没有,那就要重装PHP了,先执行php -i | grep configure ...

  6. dns是什么

    域名解析服务器,靠它把你要访问的网址找到然后把信息送到你电脑上.DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主 ...

  7. .Net下HTTP访问穿越多层代理的方法以及代理服务器的验证 转载

    https://blog.williamgates.net/2006/07/aspdotnet-through-multi-proxy/ 首先,通过普通的匿名透明代理的方法,是直接使用Socket发送 ...

  8. javascript 为啥不用instanceof检测数组,这里有一个示例坑

    前些天写js遇到了一个instanceof的坑,我们的页面中有一个iframe,我在index页面中计算得到了一个array,然后需要传递到Flight页面 这个嵌套的iframe中的一个函数(Sea ...

  9. android studio布局文件/XML怎么代码补全

    android studio中的布局文件代码补全方式是打第一个字母就提示了,而java代码有时候要按快捷键. 布局文件的话呢,要写在标签开始处才提示,在标签闭合处有时候不提示,有时候在内容里也会有不提 ...

  10. windows的DOS窗口如何修改大小

    关于这个问题,其实很简单.不知道为什么网上的资料乱遭的.故自己写下来,方便有不明白的童鞋参考. 左键点击左上角的区域会弹出一个菜单,选择属性. 如下图就能轻松的修改窗口的大小了.