
Unity3D游戏编程
文章平均质量分 89
分享Andrew的关于Unity3D游戏编程的系列文章。
包括【Unity基础编程】【Unity优化】【Unity Shader】等等,后续也会涉及【Unity物理】【Unity网络编程】等内容。爱好Unity或者游戏编程的同学欢迎关注。
AndrewFan
编程是一种艺术
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Unity编程】Unity中关于四元数的API详解
Unity中关于四元数的API详解Quaternion类Quaternion(四元数)用于计算Unity旋转。它们计算紧凑高效,不受万向节锁的困扰,并且可以很方便快速地进行球面插值。 Unity内部使用四元数来表示所有的旋转。原创 2017-03-27 01:06:27 · 11303 阅读 · 4 评论 -
【Unity Shader】如何修改LineRenderer与TrailRenderer 中的颜色
LineRender和TrailRender是两个好东西,很多Unity拖尾特效都会使用到它们。一些简单的介绍可以参见官方的API文档。 在这里探讨一下它们具体的渲染方式,而后给出一些Shader以便更好地控制它们。原创 2017-02-25 21:21:53 · 11502 阅读 · 0 评论 -
【Unity优化】Unity优化技巧进阶(持续更新中...)
关于Unity中的Foreach这个话题,网络上讨论的很多,我也收集了一些资料,都不是很齐全,所以自己亲自测试,这里把结果分享给大家。foreach究竟怎么了?研究过这个问题的人都应该知道,就是它会引起频繁的GC Alloc。也就是说,使用它之后,尤其在Update方法中频繁调用时,会快速产生小块垃圾内存,造成垃圾回收操作的提前到来,造成游戏间歇性的卡顿。原创 2017-03-01 11:23:40 · 9956 阅读 · 1 评论 -
【Unity优化】Unity中究竟能不能使用foreach?
关于这个话题,网络上讨论的很多,我也收集了一些资料,都不是很齐全,所以自己亲自测试,这里把结果分享给大家。foreach究竟怎么了?研究过这个问题的人都应该知道,就是它会引起频繁的GC Alloc。也就是说,使用它之后,尤其在Update方法中频繁调用时,会快速产生小块垃圾内存,造成垃圾回收操作的提前到来,造成游戏间歇性的卡顿。原创 2017-03-04 01:13:17 · 16348 阅读 · 9 评论 -
【Unity优化】我所理解的IL指令
我所理解的IL指令,这里目前只列举了一些常见指令,box、unbox、newobj、ldc、stloc等等,我认为比较重要的指令,学习Unity最好是要深刻了解C#较为底层的IL实现。原创 2017-03-02 21:39:59 · 3517 阅读 · 0 评论 -
【Unity优化】构建一个拒绝GC的List
Unity系统的泛型List存在的问题是:它在finally中回收枚举器时执行了Box操作。自定义List时,正确实现泛型格式的IEnumerable、IEnumerator是关键,需要避开枚举单元被Current时,值类型被强制转换成对象类型的Box操作。原创 2017-03-11 00:44:53 · 6686 阅读 · 8 评论 -
【Unity优化】为C#定制联合(Union)提高序列化速度
当执行连续大量的序列化时,使用联合可以很好地避免GCAlloc产生,而且效率要比BitConvertor来的高。原创 2017-03-15 16:28:41 · 5787 阅读 · 1 评论 -
【Unity优化】如何实现Unity编辑器中的协程
Unity编辑器中何时需要协程当我们定制Unity编辑器的时候,往往需要启动额外的协程或者线程进行处理。比如当执行一些界面更新的时候,需要大量计算,如果用户在不断修正一个参数,比如从1变化到2,这种变化过程要经历无数中间步骤,调用N多次Update,如果直接在Update中不断刷新,界面很容易直接卡死。所以在一个协程中进行一些优化,只保留用户最后一次参数修正,省去中间步骤,就会好很多。原创 2017-03-22 22:46:45 · 5409 阅读 · 0 评论 -
【Unity编程】下载和安装Unity
1.1、下载和安装Unity1.1.1 选取版本首先找到Unity官方网站https://store.unity.com/cn,如果要下载最新版本,可以选择“立即下载”。不过我建议你最好下载一个稳定版本,Unity更迭版本比较快,一般当出现5.5的时候,你用5.4.x,x取最大的一个版本号,这个版本相对比较稳定。以此类推,我写文章时的版本已经出到5.5.1,这时最好使用5.原创 2017-02-15 01:40:34 · 7095 阅读 · 4 评论 -
【Unity编程】官方资源介绍
1.2、官方资源介绍Unity官方提供了丰富的学习和参考资源,有以下类别:Unity手册以及API文档Unity的官方教程AssetStore1.2.1 Unity手册以及API文档前述文章中介绍过,安装Unity时,提供了可选安装包,只要安装即可获得此文档。本地文档可以在Unity安装目录找到,在线文档可以通过网址:https://docs.unity3d.com原创 2017-02-15 01:43:19 · 2489 阅读 · 0 评论 -
【Unity编程】 Unity界面概览
Unity中的基本概念本文我们介绍Unity中的基本概念,包括:场景、游戏对象、组件、预制件、资源等。2.1、界面概览 打开Unity之后,我们大概可以看到以上画面,以上画面中即显示了我们最常用到的面板,下面介绍它们的用途。如果有些面板你没有找到,可以通过菜单Window->[面板名称]来打开,面板名称如下列英文介绍。注意:我会在英文面板名称的下原创 2017-02-15 01:50:18 · 2338 阅读 · 0 评论 -
【Unity编程】Unity中的基本概念
介绍Unity中的基本概念:游戏对象、场景、资源、相机、预制件等等原创 2017-02-16 09:35:00 · 5238 阅读 · 0 评论 -
【Unity编程】 Component 组件脚本及其基本生命周期
默认的脚本继承自MonoBehavior类,这个类是通常的自定义脚本组件继承类,也就是我们自己所编写的脚本的父类。而Unity内部组件,如相机等是继承自MonoBehavior的父类Behavior或者再上层的父类Component。Unity为何要分成三个级别继承?从Component到Behavior只是增加了一个是否可以enable的属性,用于区别有些组件是可以禁用的,而有些组件是不可以的。而从Behavior到MonoBehavior,则纯粹是为了Unity程序员准备的,因为它增加了很多响应原创 2017-02-17 08:15:17 · 4178 阅读 · 0 评论 -
【Unity编程】 MonoBehavior 组件父类重构
为了让我们的组件类用起来更方便,我们将上一节的代码进行重构。原创 2017-02-17 09:27:05 · 2746 阅读 · 1 评论 -
【Unity编程】Unity3D-使用对象池高效管理内存
本节通过一个简单的射击子弹的示例来介绍一个比较通用的Unity对象池的写法原创 2017-02-21 08:01:34 · 7260 阅读 · 10 评论 -
【Unity编程】 Transform
每个游戏对象(GameObject),其存在于游戏世界,都有一个位置、朝向、大小等基本定位信息;其存于Hierarchy面板,也存在与其他GameObject的相对关系,如父子关系、兄弟关系。Unity中使用Transform来描述和操作这些属性。 Transform的字面理解就是“变换”的意思,所有的GameObject,当其被创建完成之后,均自动创建了这样一个变换组件,你不需要手动创建这个组件,而且无法删除此组件。原创 2017-02-19 22:23:22 · 2836 阅读 · 2 评论 -
【Unity编程】Unity中的欧拉旋转
写这篇博客之前,我搜索了网上很多关于欧拉角的定义,发现大部分引用自维基百科的定义,而它们与Unity是不同的。在这篇文章中,我会深入解释Unity中欧拉角的定义,和欧拉旋转注意点。原创 2017-03-09 17:26:23 · 26062 阅读 · 5 评论 -
【Unity编程】欧拉角与万向节死锁(图文版)
总结来说,欧拉角的“万向节死锁”问题,是由于欧拉旋转定义本身造成的。这种围绕选旋转前固定轴的先Z、再X、再Y的旋转操作,与其最终所预期的三个轴向可以旋转的结果并非一定是一对一的映射。某些情况下是多对一的映射,造成一些旋转自由度的缺失,也就是“死锁”。原创 2017-03-11 17:08:08 · 61480 阅读 · 39 评论 -
【Unity编程】四元数(Quaternion)与欧拉角
四元数是高阶复数的数学,它用在游戏中的作用主要是计算三维矢量的旋转,它使用先将矢量映射到纯虚四元数,再应用旋转四元数的方式进行映射。最后可以达成旋转目的。原创 2017-03-18 01:21:53 · 29528 阅读 · 0 评论