Unity3D游戏开发之创建基本游戏场景二
接Unity3D游戏之创建基本游戏场景一,下面介绍创建基本游戏场景的第二篇文章,光源是每一个场景的重要组成部分,网格模型和材质纹理决定了场景的形状和质感,光源则决定了场景环境的明暗、色彩和氛围。每个场景中可以使用一个以上的光源,合理地使用光源可以创造完美的视觉效果。
uniity提供了4种类型的光源
1、Directional light:方向光源,类似于自然界中日光的照明效果
2、Point light:点光源,类似灯泡的照明效果
3、Spotlight:聚光灯,类似射灯的照明效果
4、Area Light:区域光/面光源
创建过程如下图:
光源的参数信息:
Type:类型,光源的类型
Range:范围,该项用于控制光线从光源对象的中心发射的距离,只有点光源和聚光灯有该参数
Color:颜色,该项用于调节光源的颜色
Intensity:强度,该项用于控制光源的强度,聚光灯以及点光源的默认值是1,方向光默认值是0.5
Cookie:该项用于为光源指定拥有alpha通道的纹理,使光线在不同的地方有不同的亮度
Cookie Size:该项用于控制缩放Cookie投影,只有方向光有该参数
Shadow Type:阴影类型,可以选择No Shadows(关闭阴影)、Hard Shadows(硬阴影)以及Soft Shadows(软阴影),只有Directional light光源才可以开启阴影
Draw Halo:绘制光晕
Flare:耀斑/眩光,该项用于为光源指定耀斑/镜头光晕的效果
Render Mode:渲染模式,该项用于指定光源的渲染模式,有三项可供选择,Auto:自动,根据光源的亮度以及运行时质量设置的设置来确定光源渲染模式;Important:重要,光源逐像素进行渲染;No Important:不重要,光源总是以最快的速度进行渲染
Culling Mask:剔除遮蔽图,选中层所关联的游戏对象将受到光源照射的影响
Lightmapping:光照贴图
OK,下面我们看看具体的案列
先导入已经制作好的场景,如下图:
我们依次打开菜单栏GameObject->Create Other->Directional light,为场景添加一个方向光,此时你会发现场景明亮了许多,如下图:
我们想模拟午后阳光效果,所以在检索视图中我们修改光源的颜色,并设置强度为0.8,并且添加阴影,在Shadows Type中我们选择Hard Shadows(硬阴影),如下图:
接下来我们介绍下摄像机
正如电影中的镜头用来将故事呈现给观众一样,Unity的摄像机用来将游戏世界呈现给玩家,游戏场景中至少有一台摄像机,也可以有多台,多台摄像机可以创建双人分屏效果或高级的自定义效果。
Unity中支持两种类型的摄像机,分别是perspective(透视)以及Orthographic(正交)摄像机,可以理解为用在3D和2D上,我们来看下摄像机的属性,如下图:
我们看下Camera组件的参数
Clear Flags:清除标记,决定屏幕的哪部分将被清除,该项一般用于使用多台摄像机来描绘不同游戏对象的情况,有3种模式
Skybox:天空盒,该模式为默认设置,在屏幕中空白的部分将显示当前摄像机的天空盒,如果当前摄像机没有设置天空盒,它会默认使用Background背景色。
Solid Color:纯色,选择该模式屏幕上的空白部分将显示当前摄像机的背景色。
Depth only:仅深度
Don't Clear:不清除
Background: 背景,该项用于设置背景颜色
Culling Mask:剔除遮罩,依据游戏对象所指定的层来控制摄像机所渲染的游戏对象
Projection:投射方式
Perspective:透视,摄像机将用透视的方式来渲染游戏对象
Orthographic:正交,摄像机将用无透视的方式均匀地渲染游戏对象
Field of view:视野范围,只针对透视模式,该项用于控制摄像机的视角宽度,以及纵向的角度尺寸
Clipping Planes:剪裁平面,摄像机开始渲染于停止渲染之间的距离
View Port Rect:标准视图矩形,用四个数值来控制该摄像机的视图将绘制在屏幕的位置以及大小,该项使用屏幕坐标系,数值在0-1之间
Depth:深度,该项用于控制摄像机的渲染顺序,较大值的摄像机将被渲染在较小值的摄像机之上
Rendering Path:渲染路径
Target Texture:目标纹理
HDR:高动态光照渲染
下面我们来看看如何在场景中实现画中画
导入现有的场景,在该场景中已经有了一个名为Camera的摄像机,Deth深度为0,摄像机视野包括了场景中的桥,如下图:
接下来我们新创建一个Camera,命名为Camera01,然后调整摄像机的视野范围,跟第一个摄像机有所区别,然后Deth设为1,然后我们我们点击Play按钮,发现出现的第二个摄像机的画面,如下图:
为了使该相机占用屏幕的一部分来实现画中画的效果,接下来对ViewPortRect属性进行编辑,改为0.6,0.58,1,1,单击Play按钮,如下图: