- 博客(10)
- 资源 (12)
- 收藏
- 关注
原创 浅析Lua中table的遍历
当我在工作中使用lua进行开发时,发现在lua中有4种方式遍历一个table,当然,从本质上来说其实都一样,只是形式不同,这四种方式分别是: for key, value in pairs(tbtest) do XXX end for key, value in ipairs(tbtest) do XXX end for i=1, #(tbt...
2018-10-31 18:20:10 314
转载 Socket心跳包机制
跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。 在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项:SO_KEEPALIVE。系统默认是设置的2小时的心跳频率。但是它检查不到机器断电、网线拔出、防火墙这些断线。而...
2018-10-30 14:14:13 264
转载 Unity文件、文件引用、meta详解
本文介绍unity工程中的文件类型,文件引用原理和meta文件的yaml结构等参考文档:Assets, Objects and serialization Description of the Format YAML Class ID ReferenceUnity项目中Assets目录下常见的文件类型在unity3d中一般存在这么几种文件资源文件 代码文件 序列化文件 ...
2018-10-30 11:43:07 1413
原创 播报制战斗
最近做了一个包含播报制战斗的活动,活动大致是玩家一起挑战某个世界boss,直至将boss消灭,按伤害量进行奖励。该活动的战斗是播报类型的,即战斗过程是完全无操作,玩家只是要看完整个完整的战斗过程。很显然,在玩家一开始进行战斗时,战斗结果已经确定了,客户端只是在接收到服务端发来的该场战斗的数据后,像播“视频”般将整场战斗播放出来。在此总结分析下战斗部分的代码。 与战斗相关的UML类图:...
2018-10-24 18:30:27 157
转载 基于矩阵的UGUI引导蒙版方案
UGUI实现引导蒙版有多种方案,可以基于shader,或纯粹靠程序实现,这里分享一种最近在项目中使用的基于shader的蒙版方案。许多基于shader的引导蒙版方案都是将需要遮罩的区域以vector4的形式传入shader,这种方式实现简单且易于理解,而且效果不错,但使用这种方式容易造成一种无法避免的问题:蒙版区域无法旋转,当然除非额外传入遮罩区域的旋转信息。今天要介绍的方案是直接计算出蒙...
2018-10-17 18:32:37 182
转载 Unity项目资源加载与管理
此前Unity官方技术支持工程师田彪为大家分享了Unity项目设计与管理的一些注意事项,其中最重要的莫过于资源加载与管理了。今天这篇文章将由Unity官方技术支持工程师柳振东,针对一些常见的Unity项目资源加载与管理问题进行解答。 将材质打包为AssetBundle,运行时使用LoadAsset加载材质也成功了,为什么还会出现材质丢失呢? 这也是开发者经常会遇到的问题。一般情况都...
2018-10-10 23:50:49 1283
原创 Unity内存的优化
这里从三个纬度来分享下内存的优化经验:代码层面、贴图层面、框架设计层面。一.代码层面。1.foreach。Mono下的foreach使用需谨慎。频繁调用容易触及堆上限,导致GC过早触发,出现卡顿现象。特别注意的是在Update中如果非必要,不要使用foreach。尽可能用for来代替foreach。会产生GC Alloc,说明foreach调用GetEnumerator()时候有堆...
2018-10-10 18:40:41 282
转载 Unity3D游戏轻量级xlua热修复框架
一 这是什么东西 前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察xlua和tolua,最终选择了xlua,很大部分原因是因为项目已经到了后期,线上版本迭代了好几次,所以引入Lua的目的不是为了开发新版本模块。xlua在我们的这种情况下很是适用,如xlua作者所说,用C#开发,用lua热更,xlua这套框架为我们提供了诸多便利,至少我可以说,在...
2018-10-09 18:42:40 961
转载 关于 Lua 内存泄漏的检测
前一阵开始和同事一起优化内存,首先是优化 Lua 内存,因为发现每次战斗完后 Lua 内存非常大,从 3M 左右在经过了10次左右的战斗后,会暴增到近 100M,很明显是有内存泄漏。 然后我正式启动该工作,基本思路就是递归遍历内存中所有的数据,表,函数,协程,用户数据,查看未释放和笔误引起的全局变量泄漏;于是通过搜索我参考了以下资料: http://shavingha.b...
2018-10-09 09:51:45 2033 1
原创 Unity 性能优化
1.对于DrawCall的认识: DrawCall即为由CPU下达命令,调用OpenGL或DirectX接口进行解析并由GPU进行渲染显示的过程称为一次DrawCall。 在Unity中查看DrawCall参数,Window / Profiler 或者Ctrl+7 快捷键打开 Profiler性能分析器面板。 在程序运行状态,如下图即为DrawCall参数: 当然,在...
2018-10-08 12:48:59 223
Unity5.x打包场景AssetBundle和加载场景
2018-08-18
NGUI 3.7.2
2015-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人