Unity3D个人知识点(1)

时间:2024-03-28 07:19:50

一、Game Object的灯光组件

Directional Light平行光、Point Light点光以及Spotlight光束都是平常经常用且可以直接在Scene窗口看见效果的光。

唯一一个比较特殊的是Area Light区域光则是在场景烘培中才使用的光,也无法在Scene窗口看见效果。

(1)Directional Light平行光

在场景里直接创建的光源会一个空物体自带Light组件表示

Unity3D个人知识点(1)

1.可以通过Type属性来后期更改它的光源类型,但是推荐不要这样做,因为即使更改了光源类型,这个物体的名字还是不会变的,如果忘记更改名字就很容易产生歧义这个光到底是什么类型。

2.Intensity属性是光源强度,强度越高,该光源的默认优先级也越高。在默认的Forward正向渲染模式下,一个场景只能受到一个平行光的作用而产生阴影,且只有平行光可以产生阴影,点光源等等是无法在Forward渲染模式下产生阴影的。

所以,如果不在光源的Render Mode选单中更改该光源的优先级的话。Intensity最强的平行光将成为主光源,并产生它的阴影。

Unity3D个人知识点(1)

3.Cookie属性可以通过添加一个Texture来为光源添加一个遮罩,光线打到物体上将呈现该Texture的图案,Cookie Size用来更改Texture的大小

4.Shadow Type属性可以用来选择阴影是否柔滑边缘

Unity3D个人知识点(1)

5.Strength用来调整阴影的不透明度,越大越不透明

6.Resolution代表阴影细节的精度分为低中高超高四个等级

7.Bias表示投影的底部与其产生的物体的距离,过高会使他们之间的距离过远而丢失底部阴影,过低则会将阴影打在物体身上。

8.Draw Halo表示是否产生光晕

剩下的选项以后会接触

 

(2)Point Light点光

对于Point Light来说Light组件多了一个Range范围属性,值越大光照范围越大

Unity3D个人知识点(1)

但是有一点要注意,当Range值变大时,光源中心的Intensity也会相应增强,所以要保持原来的光源强度不变需要再次调低Intensity。

Point Light同样有Cookie这个属性,但是这里的Cookie与Directional Light不一样,仅仅赋予它一个Texture贴图是不会有任何效果的,它需要的是一个Cube Map立方图。

Unity3D个人知识点(1)

一个立方图是有六个Texture组合而成的三维贴图,它可以作为遮罩包住点光源。

一般在球面镜反射和玻璃遮罩效果时都会用到Cube Map。

就像之前说的,虽然Point Light也有shadow属性,但是在Forward渲染下是无法实现的,所以要想出现Point Light的阴影,就必须将Main Camera的渲染模式改为Directional Light延时渲染。

对于Spotlight光束来说也是类似的。

 

二、Sprite 精灵组件

Sprite是多用于在2d画面展示2d动画的资源,当然也可以在3d画面使用。

要使用Sprite组件需要预设按顺序排列好的多合一拼图,

Unity3D个人知识点(1)

并将它设为Sprite类型,Sprite Mode改为Multiple,即可以被裁剪为多段。再点击Sprite Editor,在左上角修改手动Grid模式进行裁剪,

Unity3D个人知识点(1)

裁剪完成后就可以将这些图片置于Sprite组件里,

Unity3D个人知识点(1)

最后通过脚本对Sprite组件里的图片进行切换便可以实现动画效果。

 

三、子物体的Transform属性是相对于父物体的位置,父物体仍是相对于原点的位置,如果更改了父物体的Transform属性,子物体也会跟着改变。

但是如果将Scene窗口上的Pivot视角改为CenterUnity3D个人知识点(1)

再次点击父物体,整个物体将是父物体及其所有子物体Transform的权重之和

 

四、场景搭建技巧

  1. 当我们需要快速将两个物体置于同一位置时,可以将需要移动的物体设为目标物体的子物体,再将被移动物体的Transform属性reset,即可将其移动至父物体位置处。
  2. 在Hierarchy菜单的上方有搜索框,可以通过它来搜索所有与关键词有关的物体,选定了物体之后,点击旁边的叉号,就可立刻定位到该物体在Hierarchy菜单中的位置。

 

五、Shader着色器

Unity自带的着色器大致分为以下几种:
标准着色器

Unity3D个人知识点(1)

这些在老版本里都是标准着色器,但在5.x版本后他们的功能全部被整合到Standard着色器里了

Unity3D个人知识点(1)

Normal Map可以再添加一张纹理Texture,让材质更加真实立体

Unity3D个人知识点(1)

Metallic贴图,它是用于体现模型的金属高光反射。金属度贴图本身是一张灰白图。越白的地方,金属度越强烈,越黑的地方,金属度越低。

在面板设置中:

Unity3D个人知识点(1)

smoothness越高,金属度就越明显。

Unity3D个人知识点(1)

Unity3D个人知识点(1)

透明着色器

镂空着色器

自发光着色器

反射着色器