Unity游戏开发基础知识(新手必看)

内容会持续更新,有错误的地方欢迎指正,谢谢!

0.Unity最大的优点

unity提供的最大优点就是跨平台。
以前项目移植很麻烦,现在只要一份代码,然后注意平台差异就好了。

1.灯光类型

  1. 平行光:DirectionalLight 有一个方向,用于模拟阳光
  2. 点光源:Point Light 一个球状,用于模拟灯泡,、爆炸等,别开启阴影运算以节约性能
  3. 聚光灯:Spot Light 崩坏3琪亚娜的极乐净土CG视频中聚光灯用得特别多,游戏中慎用
  4. 区域光源:Area Light 区域光只能用在烘焙,因此不影响游戏性能

2.光照贴图LightMapping

单独使用的LightMapping效果很好,也就是提前静态烘焙,但由于只是把光影烘焙到贴图上,所以并不会对周围的动态物体产生真正的光照效果。这次来介绍一下光照探头LightProbe:

这是对LightMapping的一个补充功能,可以让动态物体在烘焙好的场景里面受到光的照射效果,就是全局光照的知识。LightProbe的用法就是在LightMapping的基础上加上了一些探头,探头越多,效果就越明显。

3.全局光照GI

全局照明GI是一种系统,用于模拟光如何从表面反射到其他表面。例如:阳光击中红色沙发会导致红光反弹到其后面的墙上。

有两种使用方式:烘焙方式的GI(只能烘焙静态物体)和预计算的GI(可以做天气系统)。在手机平台上,效能和内存限制较高,烘焙的GI法就会比较适合,决定采用哪一种方法可以针对你的目标平台评估。

4.预制体Prefab的作用

相当于一个GameObject模板,方便多次使用。

有两种实例化的方法:

  1. 直接将预制体拖到场景中
  2. 在代码里动态实例化:1.使用Instantiate,一般实例化到某个父物体下面,方便管理;2.先将预制体放在Resources文件夹下,再使用Resources.Load。一般用第一种方法。说到这里,有一个概念:对象池 强烈推荐使用,节约性能。

预制体也有两种用途:

  1. 物体的继承性:全部实例物体都相同
  2. 物体的重载性:对某一个实例物体进行单独的修改,让其与其他物体产生区别

5.性能优化

https://blog.csdn.net/billcyj/article/details/79441193

6.渲染流程

https://blog.csdn.net/billcyj/article/details/79539536

7.前向渲染和延迟渲染

正常的前向渲染(Forward Shading)流程是把空间的点进行各种剪裁后进行处理,处理量远远大于我们最终看到的。所以延迟渲染出现了,它先将摄像机空间的点光栅化转化成屏幕坐标后再进行处理。这样就能减少处理的次数,从而提高效率。

8.场景管理—四叉树

https://blog.csdn.net/BillCYJ/article/details/79791056

9.游戏开发中常用的数据结构

https://blog.csdn.net/BillCYJ/article/details/79790951

10.游戏开发中常用的算法

https://blog.csdn.net/BillCYJ/article/details/79792110

11.游戏中常用的设计模式

https://blog.csdn.net/BillCYJ/article/details/79816418

12.FSM(有限状态机)、HFSM(分层有限状态机)、BT(行为树)

https://blog.csdn.net/BillCYJ/article/details/79797228

13.帧同步

https://blog.csdn.net/BillCYJ/article/details/79804116

14.Unity跨平台的机制原理

Unity和Mono的关系:Unity引擎本身是由C++写出的,只不过Mono被嵌入到了Unity当中,为Unity提供了一个完整的虚拟机运行环境。

Unity的跨平台,就是通过Mono将C#代码编译成了通用中间语言CIL(Common Intermediate Language),然后Mono运行时利用 动态编译JIT 或 静态编译AOT 将CLI编译成目标平台的原生代码实现的。

15.骨骼动画原理

先摆好骨骼,骨骼之间有继承关系,再蒙皮(也就是将皮肉绑到骨骼上,主要的工作就是分配权重),最后再做动画。

16.UGUI源码学习之Button和Image

https://blog.csdn.net/BillCYJ/article/details/79879916
https://blog.csdn.net/BillCYJ/article/details/79884504

17.用Unity开发游戏常用的四种存档方式

https://blog.csdn.net/BillCYJ/article/details/79888614

18.Unity里的动态批处理和静态批处理

https://blog.csdn.net/BillCYJ/article/details/79935983

19.OverDraw过度绘制

过度绘制(Overdraw)描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次。在多层次重叠的 UI 结构里面,如果不可见的 UI 也在做绘制的操作,会导致某些像素区域被绘制了多次,同时也会浪费大量的 CPU 以及 GPU 资源。

未完待续~

猜你喜欢

转载自blog.csdn.net/BillCYJ/article/details/79787128