摘要:
SYN:同步(1:开启 0:关闭),表示客户机想与服务器同步 ACK:确认(1:表示有效 0:无效) FIN:结束 PSH:有 DATA数据传输 RST:连接重置 seq:序号(随机生成的) ack:确认号 三次握手 三次握手描述是不太准确的,建立Tcp链接只握了 一次手,所谓3次 是发送了3次报文 阅读全文
摘要:
Dictionary是我们经常使用的,一起来看看它是如何构造的,及有哪些优缺点。 Dictionary是一种键值对的形式存放数据,即 key值 、value 值 一 一映射的。key的类型没有限制,可以是整数、字符串甚至是实例对象。 Dictionary的实现原理,有两个关键的算法,Hash算法 和 阅读全文
摘要:
构造函数: 由此可见 List 用数组实现的。 Add 方法: 我们来继续看下EnsureCapacity 函数: Remove 方法: Remove:使用Array.IndexOf () 获取Item 的索引,然后用RemoveAt 来移除,RemoveAt里面用的是 Array.Copy 来拷贝 阅读全文
摘要:
上图: 启动流程、检查更新流程 ... 游戏关卡流程 等等 全部继承自流程基类,而流程又属于状态的一种,所以流程基类继承 父类FsmState。 流程属于状态,状态需要有一个拥有者来进行管理,切换状态。那么流程的拥有者就是流程管理器。 流程管理类: 1 using System; 2 3 /// < 阅读全文
摘要:
什么是有限状态机: 有限状态机是一种用来进行对象行为建模的工具,作用是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。简单理解就是:状态满足条件下的一种处理机制。 有限状态机,任意时刻都处于有限状态集合中的某一状态。当获得一个输入字符时,将从当前状态转换到另一状态或仍保持当 阅读全文
摘要:
对象池老生常谈的问题了,对象池即对象的池子。大概描述下:对象池内寄放着废弃的对象,当程序需要某对象去池子里拿,让废弃对象再利用,如果没有则创建;用完之后再将废弃的对象回收。一句话:让内存重复利用的优化方案。 解决痛点: 1.省去很多内存碎片得问题; 2.节省实例对CPU的消耗; 3.触发垃圾回收(G 阅读全文
摘要:
unity协程Coroutine 大家并不陌生,在项目中也是经常使用。大量的使用协程,会影响性能,带来GC。 如下图 延迟调用 所带来的的GC: 因此 对于延迟调用 ,最好不要用 协程 Coroutine,最好自己用update 去实现。 自己写定时器有哪些优点: 1.减少GC 2.可以自己写回调, 阅读全文
摘要:
preinit.lua 一定要在初始化lua环境函数 执行此lua脚本 _luaEnv.DoString("require 'preinit'"); 1 if jit then 2 jit.off() 3 jit.flush() 4 end 5 6 local __g = _G 7 -- 导出全局变 阅读全文
摘要:
luajit(www.luajit.org)是lua的一个Just-In-Time也就是运行时编译器,也可以说是lua的一个高效版。 原生lua、luajit的jit模式(pc和安卓可用),luajit的interpreter模式(ios下只能运行这个)。 1.jit与interpreter 模式的 阅读全文
摘要:
总述: 以往的Animator, 角色需要的动画会一次性全部拖拽到列表里,加载就需要一次性的全部加载进去,造成卡顿。而AnimationClipPlayable可以按需加载 需要再加载 超时卸载,可以减少内存的占用。 角色动画特别多,常用的动画 默认加载,非常用的动画可以动态加载,设置过期时间 超时 阅读全文