Untiy
lingyun5905
这个作者很懒,什么都没留下…
展开
-
Arrays.sort
Arrays.sort的源码,主要采用TimSort算法, 大致思路是这样的:1 元素个数 < 32, 采用二分查找插入排序(Binary Sort)2 元素个数 >= 32, 采用归并排序,归并的核心是分区(Run)3 找连续升或降的序列作为分区,分区最终被调整为升序后压入栈4 如果分区长度太小,通过二分插入排序扩充分区长度到分区最小阙值5 每次压入栈,都要检查栈内已存在的分区是否满足合并条件,满足则进行合并6 最终栈内的分区被全部合并,得到一个排序好的数组...原创 2020-07-08 14:48:43 · 167 阅读 · 0 评论 -
为什么要较少drawcall
https://www.zhihu.com/question/27933010转载 2019-01-07 21:51:57 · 513 阅读 · 1 评论 -
lua string 处理中文字符
将字符串装成数组function StringToTable(s) local tb = {} --[[ UTF8的编码规则: 1. 字符的第一个字节范围: 0x00—0x7F(0-127),或者 0xC2—0xF4(194-244); UTF8 是兼容 ascii 的,所以 0~127 就和 ascii 完全一致 2. 0xC0, 0xC1,0xF5...原创 2019-01-18 15:03:07 · 1664 阅读 · 0 评论 -
assetbundle 管理
数据段中含有由序列化AssetBundle中的Asset而生成的原始数据。如果指定了压缩方案为LZMA,所有序列化的Asset会被压缩到一个字节数组中;如果指定了压缩方案为LZ4,不同Asset的字节数据会被单独压缩;如果没有使用任何压缩,数据段会保留原始的字节流数据。 通常情况下,应该优先使用 AssetBundle.LoadFromFile,这一API在速度、磁盘使用和运行时内存占用方...原创 2019-01-24 11:49:14 · 292 阅读 · 0 评论 -
unity 粒子特效优化
1、去掉碰撞2、通过layer分层 合并ui特效层级3、粒子不超过200 粒子发射器不超过504、对于非常小的粒子,可以使用不带apha通道的图片,因为alpha无论是blend alpha test 都是开销...待续 ...原创 2019-01-08 21:50:52 · 3794 阅读 · 0 评论 -
角色和场景优化
1、这是因为当角色仅有一个 Skinned Mesh Renderer 时, Unity 会 使用可见性裁剪和包围体更新的方法来优化角色的运动,而这种优化只有在角色仅含有一个 Skinned Mesh Renderer 时才会启动。2、角色 Material 数量2-3 个3、骨骼数量 小于 30 个4、面片数量 300-15005、一般角色应该没有 IK 结点 不要导入到ik...原创 2019-01-08 22:00:35 · 160 阅读 · 0 评论 -
lua和U3D中协程的异同
协程的一般概念:在主线程逻辑运行的同时,开启另一段逻辑处理,以辅助主程序的执行。(一)首先说下unity中的协程。调用方法如下:public Coroutine StartCoroutine(IEnumerator routine);public Coroutine StartCoroutine(string methodName, [DefaultValue("null")] o...转载 2019-01-19 19:01:40 · 365 阅读 · 0 评论 -
wrap文件绑定原理
https://www.cnblogs.com/blueberryzzz/p/9672342.htmltolua之wrap文件的原理与使用什么是wrap文件每个wrap文件都是对一个c#类的包装,在lua中,通过对wrap类中的函数调用,间接的对c#实例进行操作。wrap类文件生成和使用的总体流程生成一个wrap文件的流程这部分主要通过分析类的反射信息完成。wra...转载 2019-01-21 23:24:40 · 635 阅读 · 0 评论 -
Unity协程队列,顺序分帧处理
游戏开发过程中经常会遇到要加载一片场景资源的情况,先不考虑如何加载的情况,对于一大片场景的加载和显示,如果在一帧内完成的话,对性能会有很大的小号,造成瞬间帧率下降,产生性能峰值。一般这种不需要实时性的加载都会分帧处理,把压力平摊下去,为了使加载过程更加平滑与受控,博主写一个协程队列去控制我们加载过程中协程的调用顺序与次数,更好的平滑我们的加载过程。因为这里协程的调用是使用迭代器的MoveNex...转载 2019-01-23 11:26:06 · 3045 阅读 · 1 评论 -
Unity 模拟协程实现计时器功能
众所周知,在Unity里面开启协程会有消耗,有时候就算我们只需要用到一个简单的计时器,必须开一个协程或者自己写一个计时器。这里提供了一个通用的计时器类,里面还实现了内存池管理,使用完的计时器回收备用。使用方法:只需负责调用即可,内部会自动回收。using System.Collections;using System.Collections.Generic;using UnityEng...转载 2019-01-23 13:50:09 · 2072 阅读 · 0 评论 -
判断物体是否在相机视野内
/// <summary> /// 判断物体是否在相机视野内 /// </summary> /// <param name="_worldPos">物体的坐标</param> /// <returns></returns>private bool IsInView(Vector3 _worldPos) { Transfor...原创 2019-08-27 10:29:50 · 1052 阅读 · 0 评论 -
3d实施阴影
https://blog.uwa4d.com/archives/sparkle_shadow.htmlhttps://zhuanlan.zhihu.com/p/42433900转载 2019-01-12 23:44:44 · 159 阅读 · 0 评论 -
Unity制作格斗游戏核心思路总结
http://anchorart9.com/2016/05/22/unity%E5%88%B6%E4%BD%9C%E6%A0%BC%E6%96%97%E6%B8%B8%E6%88%8F%E6%A0%B8%E5%BF%83%E6%80%9D%E8%B7%AF%E6%80%BB%E7%BB%93/Unity制作格斗游戏核心思路总结随笔 发表于 3年前 (2016-05-22) 4516次浏...转载 2019-01-12 23:31:23 · 6896 阅读 · 1 评论 -
Ugui text 排版的bug
最近策划反映了个问题,游戏里的多行文本会出现提前换行的问题,如下图所示: 文本错误地提前换行,导致第一行文本后面有大块空白区域通过观察可以发现,当字符串中带有半角空格,且半角空格后面的字符串内容超过文本剩余显示宽度时,Text组件会将后面的整段文字做换行。这个并不是bug,而是Text组件按照拉丁西语的分词习惯做line break,半角空格相当于分隔符,分隔空格前后的内容,并视之为单词。...转载 2018-11-05 13:55:22 · 263 阅读 · 0 评论 -
UGUI mask优化
组件效果MeshMask遮罩效果图可以看到无论Mask形状是凸边形还是复杂的凹边形,都能准确地将Mask形状数据序列化成顶点,面片数据,提供给需要Mask的图片修改渲染顶点,达到遮罩效果。组件用法类似于Unity Mask,且效率优于Unity Mask。插件已上传至Github[点击下载], 欢迎试用~效率对比使用原生Mask,10个Icon占用了15个Drawcall使用...转载 2018-11-05 13:59:34 · 1068 阅读 · 0 评论 -
深入浅出聊优化:从Draw Calls到GC
看看优化需要从哪里着手?匹夫印象里遇到的童靴,提Unity3D项目优化则必提DrawCall,这自然没错,但也有很不好影响。因为这会给人一个错误的认识:所谓的优化就是把DrawCall弄的比较低就对了。对优化有这种第一印象的人不在少数,drawcall的确是一个很重要的指标,但绝非全部。为了让各位和匹夫能达成尽可能多的共识,匹夫首先介绍一下本文可能会涉及到的几个概念,之后会提出优化所涉及的...转载 2018-11-13 23:33:14 · 172 阅读 · 0 评论 -
TRANSFORM_TEX的用法
TRANSFORM_TEX方法比较简单,就是将模型顶点的uv和Tiling、Offset两个变量进行运算,计算出实际显示用的定点uv。该方法可以在UnityCG.cginc文件中找到,内容也很简单:// Transforms 2D UV by scale/bias property#define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy...原创 2018-11-08 23:07:11 · 905 阅读 · 0 评论 -
unity5中减少Draw Calls(SetPass Calls)
我一直工作于unity5支持的Standard Shader(标准着色器)上,并且做了一些关于如何有效地减少draw call的测试,在Unity5全新的standard shader上,实际成果相当可观。 我们先科普一下standard shader。Standard Shader是个基于物理的着色器, 物理渲染和当今的主流光照计算最大的区别就是,当今的lambert blinn pho...转载 2018-11-14 21:54:18 · 608 阅读 · 0 评论 -
UGUI优化:批次合并源码分析及工具
2017-02-28 分类:Unity3D / 教程文章 / 程序开发 阅读(673) 评论(2) 1. 概述本文档对Unity GUI 批次合并(Batching)源码(基于Unity 4.6版本源码)进行研究,总结UGUI Batching的规则,并提供UI优化建议,以及UI层级显示辅助工具使用说明。2. UGUI Batching规则分析UGUI以Canvas为...转载 2018-12-03 11:41:52 · 710 阅读 · 0 评论 -
Unity压缩Animation
http://gad.qq.com/article/detail/27424https://blog.uwa4d.com/archives/Optimization_Animation.html最后附上工具的代码和简要使用说明,选中想要优化的文件夹或文件,右键Animation->裁剪浮点数去除Scale。//**********************************...转载 2019-01-10 20:56:50 · 665 阅读 · 0 评论 -
何为draw call
作者:@qingqing-zhao本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/4623839.html图形引擎渲染画面的过程Unity(或者说基本所有图形引擎)生成一帧画面的处理过程大致可以这样简化描述:1. 可见性测试1. 引擎首先经过简单的可见性测试,确定摄像机可以看到的物体2. 准备好物体的数据2. ...转载 2019-01-07 21:00:19 · 187 阅读 · 0 评论 -
帧同步 状态同步
转载:https://my.oschina.net/u/1859679/blog/1137723农药自从上线以来,依靠着强大的产品力以及腾讯的运营能力,在游戏市场上表现可谓是风生水起,根据第三方的调研数据显示,《王者荣耀》渗透率达到22.3%,用户规模达到2.01亿人,每日的日活跃用户(DAU)均值为5412.8万人。 如此可观的数据,令人十分钦佩。当然了,作为技术人,更愿意从技术上了解去...转载 2019-01-12 22:28:10 · 3736 阅读 · 0 评论 -
unity减少动态字体的大小
http://www.cnblogs.com/lancidie/p/6285569.html转载 2019-01-12 22:29:30 · 627 阅读 · 0 评论 -
3d格斗游戏的碰撞检测
https://blog.csdn.net/yaonai2003/article/details/8791493在网上搜索了一些资料,最后采用了obb的碰撞检测,方法如下: 1 在3ds max中,将biped骨骼的大小设置恰当,在使用方框显示骨骼的时候能比较准确的包围住角色,如下图: 然后选中所有的骨骼,使用maxscript脚本导出来。脚本其实比较简单,代码如下...转载 2019-01-12 23:16:53 · 1039 阅读 · 0 评论 -
Unity2D Sprite Editor 图片切割
http://blog.csdn.net/akof1314/article/details/38845933转载 2016-07-01 16:24:19 · 3445 阅读 · 0 评论