摘要: 本文总结了Unity中关于Quaternion(四元数)的API使用方法以及给出部分示例。阅读全文
posted @ 2017-03-27 12:57 AndrewFan 阅读(484) 评论(0) 编辑
摘要: 当我们定制Unity编辑器的时候,往往需要启动额外的协程或者线程进行处理。比如当执行一些界面更新的时候,需要大量计算,如果用户在不断修正一个参数,比如从1变化到2,这种变化过程要经历无数中间步骤,调用N多次Update,如果直接在Update中不断刷新,界面很容易直接卡死。所以在一个协程中进行一些优化,只保留用户最后一次参数修正,省去中间步骤,就会好很多。阅读全文
posted @ 2017-03-23 08:02 AndrewFan 阅读(307) 评论(3) 编辑
摘要: 四元数是高阶复数的数学,它用在游戏中的作用主要是计算三维矢量的旋转,它使用先将矢量映射到纯虚四元数,再应用旋转四元数的方式进行映射。最后可以达成旋转目的。阅读全文
posted @ 2017-03-20 23:33 AndrewFan 阅读(236) 评论(0) 编辑
摘要: 总结来说,欧拉角的“万向节死锁”问题,是由于欧拉旋转定义本身造成的。这种围绕选旋转前固定轴的先Z、再X、再Y的旋转操作,与其最终所预期的三个轴向可以旋转的结果并非一定是一对一的映射。某些情况下是多对一的映射,造成一些旋转自由度的缺失,也就是“死锁”。阅读全文
posted @ 2017-03-12 23:33 AndrewFan 阅读(476) 评论(1) 编辑
摘要: Unity系统的泛型List存在的问题是:它在finally中回收枚举器时执行了Box操作。自定义List时,正确实现泛型格式的IEnumerable、IEnumerator是关键,需要避开枚举单元被Current时,值类型被强制转换成对象类型的Box操作。阅读全文
posted @ 2017-03-11 13:49 AndrewFan 阅读(260) 评论(7) 编辑
摘要: 写这篇博客之前,我搜索了网上很多关于欧拉角的定义,发现大部分引用自维基百科的定义,而它们与Unity是不同的。在这篇文章中,我会深入解释Unity中欧拉角的定义,和欧拉旋转注意点。阅读全文
posted @ 2017-03-09 18:24 AndrewFan 阅读(326) 评论(4) 编辑
摘要: 关于Unity中的Foreach这个话题,网络上讨论的很多,我也收集了一些资料,都不是很齐全,所以自己亲自测试,这里把结果分享给大家。foreach究竟怎么了?研究过这个问题的人都应该知道,就是它会引起频繁的GC Alloc。也就是说,使用它之后,尤其在Update方法中频繁调用时,会快速产生小块垃圾内存,造成垃圾回收操作的提前到来,造成游戏间歇性的卡顿。阅读全文
posted @ 2017-03-04 10:40 AndrewFan 阅读(393) 评论(3) 编辑
摘要: 我所理解的IL指令,这里目前只列举了一些常见指令,box、unbox、newobj、ldc、stloc等等,我认为比较重要的指令,学习Unity最好是要深刻了解C#较为底层的IL实现。阅读全文
posted @ 2017-03-02 21:50 AndrewFan 阅读(54) 评论(0) 编辑
摘要: 做游戏好多年了,关于游戏优化一直是令开发者头疼的一个问题。本系列文章将涉及到如何提高脚本运行效率、避免频繁的GC、降低DrawCall、优化顶点数和顶点计算、优化片元计算、降低物理计算等一系列问题和方法。阅读全文
posted @ 2017-03-01 12:05 AndrewFan 阅读(200) 评论(0) 编辑
摘要: LineRender和TrailRender在Unity中用于划线和制作特效,很多华丽的拖尾特效都会使用到它们。在这里深入探讨一下它们具体的渲染方式,而后给出一些Shader以便更好地控制它们。阅读全文
posted @ 2017-02-25 21:09 AndrewFan 阅读(1718) 评论(0) 编辑