[Unity3D]需要明白的基本知识点
1.Transform.localPosition:相对于父对象的位置。如果此对象没有父对象,那么这个值和Transform.position相同。
2.Transform.localRotation:相对于父对象的旋转量。
3.同样,对于LocalPosition的道理同上。
4.Unity中自带方法的执行顺序,不管你放哪,都是这样执行:
Awake ->OnEable-> Start -> FixedUpdate-> Update -> LateUpdate ->OnGUI ->OnDisable ->OnDestroy
对于OnEnable方法:当对象被启用或激活时,方法被调用。
Awake再Monobehaviour创建后就立刻被调用,在整个生命周期中,Awake只执行一次,如果一开始其所挂在的对象是未激活状态,那么就不会被调用,除非是挂在的脚本是未激活(这样会执行一次)。而对于OnEnable来说只要激活了,那么就被调用,反反复复激活就反反复复调用,不像Awake只调用一次(前提是不切换场景的条件下)。
Start()在Monobehaviour创建后在该帧Update()第一次执行前被调用;Start只有在脚本实例被启用时才会执行,也不会像OnEnable那样随着物体激活就被执行。
一般开发中都是在Awake函数中获取游戏对象或者是脚本实例的信息,然后在Start函数中进行一些获取之后的初始化设置。
5.Lightmap(光照贴图),和阴影贴图是一个意思:对于像太阳这种定向光来说,需要使用正投影,对于点光源需要使用透视投影。
6.Specular map(镜面贴图):需要用一个纹理贴图来获得镜面高光。这就需要生成一个黑白(随便自己喜欢的颜色)纹理来定义Specular亮度,并把它应用到物体的每个部分。一个Specular高光的亮度可以通过图片中每个纹理的亮度来获得,镜面贴图的每个像素可以显示为一个颜色向量,(如黑色代表颜色向量vec(0.0f),灰色是vec3(0.5f)。在片段着色器中我们采样相应的颜色值,把它乘以光的Specular亮度,像素越白,乘积的结果越大,物体的Specular部分越亮。)
7.LOD(Level of Detail细节程度):用来优化摄像机看远处的物体时渲染对象的,当摄像机中有远处的物体时,那么可以适当降低其精细程度(也就是减少面片的渲染数目,可以看Unity 文档对于LOD的解释)。这样就可以提高渲染能力。