十月 21

Unity中的摄像机Camera

Clear Flags属性:选择摄像机中空白的部分如何去显示。Skybox为显示蓝天的样子,Solid Color为显示一个用户指定的颜色。

注:Skybox有两种设置方式,一种是全局的,在Window -> Lighting -> Setting -> Skybox Material中设置。需要注意的是,这种全局方法的设置路径是针对5.x版本的。另外一种是局部方式,是在Camera中添加Skybox组件,然后在该组件中修改Skybox的材质。如果同时存在全局和局部的设置,那么Skybox的显示以局部的为准。

制作游戏场景小地图:

  1. 创建地图摄像机
  2. 调整摄像机位置:Clear Flags设置成Depth Only,投射方式Projection设置成Orthographic,视野大小Size,深度值Depth设置成地图摄像机数值大(在上),摄像机位置Viewport Rect设置地图摄像机位置。
  3. 在人物上方放置一个片体来标志人物位置。如果只希望地图摄像机看到该片体,不希望主摄像机看到该片体,则设置Culling Mask。

注意:此方法仅为演示功能,实际使用中由于太消耗资源而会进行许多调整。

十月 21

Unity中的灯光Light

灯光的作用就是发光,照亮其他的物体。一个物体如果有Light组件,我们就称之为光源。

创建光源:1. 创建一个空物体GameObject,2. 然后给这个空物体添加Light组件。Light组件位于Component -> Rendering -> Light。

光源类型:1. Directional Light:方向光源。方向光源和光源位置没有关系,只和光照的方向有关系。调整光线的强度可以调整Intensity属性。2. Spot:聚光灯光源。聚光灯光源产生一个锥形区域。这个区域和光源的位置有关。可以通过Range和Spot Angle调整聚光灯光源产生的锥形区域的几何形状。3. Point:点光源。点光源像灯泡一样,照亮周围的区域,且有由亮到暗的过渡。点光源的效果和位置有关。4. Area Light:面光源。这种光源仅能用于烘焙。

光源属性:Culling Mask:删除遮罩。这个属性可以选择光源照射的层。被选中的层会被光源照射到,而未被选中的层则不会被光源照射到。Shadow Type:调整阴影类型。默认为无阴影。Hard Shadow可以通过Strength调整阴影强度,Resolution可以调整阴影的分辨率。Soft Shadow增加Softness和Softness Fade两个选项。

Baking烘焙:为了提高程序的性能,我们把光照的效果做成材质贴图,这样就形成了静态的贴图。一般只烘焙静态的物体。步骤:1. 将静态的游戏物体及地面设置为Lightmap Static,2. 选择Window -> Lightmapping -> Bake Scene。

Rendering Path渲染路径:Edit -> Project Settings -> Player -> Other Settings -> Rendering path。渲染路径主要影响灯光和阴影的效果。Vertex Lit画质最差,无实时阴影。Forward Rendering为默认选项,只有Directional Light有实时阴影。Deferred Lighting画质效果最佳,几种光源都有实时阴影,但是对GPU资源占用也最多。

注释:

  1. 阴影剔除:设置显示阴影的距离。设置位置:Edit -> Project Settings -> Quality -> Shadows Distance。
  2. 静态物体的阴影只能烘焙在静态物体之上。因此运动的物体与场景的光线可能无法融合在一起,显得不真实。这种情况下可以使用Light Probes组件来进行插值运算。在静态物体上添加Light Probe Group component,然后给静态物体添加Probes。再然后先Bake Probes再Bake Scene。最后在动态物体的Mesh Renderer组件上勾选Use Light Probes。
十月 20

Unity中的材质Material

Unity中材质Material:指色彩Main Color,纹理Texture,着色器shader(光滑度,透明度,反射率,折射率,发光度)等。因为预览方式是个球体,有时又被称作材质球。

Unity中创建材质Material:在Project项目面板中创建材质。

Unity中赋予材质Material:将材质赋予给游戏物体Gameobject的Mesh Renderer组件,操作为直接从项目面板拖动到Element 0上。一种快捷方式是直接把材质拖拽到Scene场景面板或者Hierarchy面板上的游戏物体上。

Shader不能直接拖拽到游戏物体上,需要我们先新建一个Material,然后把Shader赋予给Material,再把Material赋予给游戏物体。有些Shader还需要把对应的C#脚本赋予给游戏物体。

Shader范例:GlassShader有一个特殊参数,Main Material Blend Level。这个参数可以理解为玻璃的透明度。MirrorReflection有两个特殊参数,Texture Size,设置的是反射面的模糊程度;Clip Plane Offset,设置的是反射面物体偏移程度。另外使用MirrorReflection的时候要注意,我们需要把对应的C#脚本赋予给游戏物体。而且两个特殊参数也是在C#脚本中进行设置。

 

十月 19

Unity父子继承关系

继承关系:在Hierarchy面板中将一个物体拖动到另外一个物体下,就形成继承关系。父物体移动旋转缩放的时候,子物体跟着移动旋转缩放。但是子物体进行移动旋转缩放的时候,父物体不跟着移动旋转缩放。子物体的移动旋转缩放数值都是相对于父物体的。举个例子来说,如果子物体的坐标为0,0,0,那么子物体就是位于父物体的原点,这个数值不因父物体的坐标变化而变化。

十月 19

Unity界面讲解

Project面板:项目面板。其中存放的是项目中的资源。资源包括模型,场景,声音,脚本,动画等。导入Project面板中的文件会被保存在项目的Assets文件夹中。.unitypackage文件是一种特殊的资源,也导入到Project面板中。

Hierarchy面板:存放场景中的游戏对象(GameObject)。场景就类似于游戏中的关卡,每个关卡中的游戏物体都是不同的。放在Hierarchy面板中的物体可以在Scene面板中看到。复制游戏物体:Ctrl + D。选中任意物体,Ctrl + Shift + F会将该物体放置到当前视角位置。

Scene面板:场景面板,就是场景的可视化布局。按住鼠标右键可以旋转场景,按住滚轮拖动,滑动滚轮就缩放场景。在Hierarchy中双击某物体,会将该物体居中。按住鼠标右键并且操作WASDQE可以实现实景漫游。定点吸附:选择物体后按住V,定位定点,再拖拽物体到某个定点上。注意拖拽完成后要先松开V键

Game面板:游戏面板,就是游戏玩家实际看到的视图。

Inspector面板: 检查监视选中的游戏物体所附加的组件及其属性。某个组件对应某个功能。

Transform:变换工具,用于变换游戏物体。对应快捷键:Q移动场景,W移动物体,E旋转物体,R缩放物体。

Pivot/Center:Pivot是把局部坐标系放在模型的默认位置。Center是把局部坐标系放在中心位置。

Local/Global:选择使用局部坐标系还是世界坐标系。

Layer:层面板。我们可以把不同的游戏物体放到不同的层中。然后我们可以在编辑的时候只显示我们需要显示的层。注意,层显示控制的只是游戏物体的显示,并不会删除游戏物体。

注意:

  1. Unity3D默认的坐标系为左手系。
  2. 在Scene面板的世界坐标系下面可以选择标准视图和透视视图。
  3. Inspector面板中的Mesh Filter和Mesh Renderer一起使用才能显示物体。Mesh Filter用来控制形状,Mesh Renderer控制各种显示特性。