【摘要】:Unity中可以扩展的相机属性●清除标记:决定场景的哪个部分需要清除。你可以创建多个相机并赋予它们不同的深度。如果当前相机没有设置天空盒,它将缺省使用在渲染设置中的天空盒。武器相机的Clear Flags应该被设置为仅深度。为了使UI显示在所有其他相机视的顶部,你还需要设置Clear Flags和Depth only并确定相机的深度比其他相机的高。图7-53景深相机正交相机。
相机是一个能够捕获并为玩家显示世界的设备。通过设置和操纵相机,你可以真实而独特的显示你的游戏。在一个场景中你可以有无限的相机。它们可以被设置为任意的渲染顺序,任意的的渲染位置,或者特定的场景部分,如图7-52所示。
Unity中可以扩展的相机
属性
●清除标记(Clear Flags):决定场景的哪个部分需要清除。当需要使用多个相机以显示不同的游戏元素时这是非常有用的。
●背景颜色(Background color):在所有的元素这之后的屏幕颜色,没有天空盒
●视口矩形(View Port Rect):在屏幕坐标系下使用四个值(归一化处理)来确定相机的哪些部分将显示在屏幕上。
●X:相机视开始绘制的开始水平坐标(默认0,水平中心)
●Y:相机视开始绘制的开始垂直坐标(默认0,垂直中心)
●W:相机视结束绘制的宽度比例(默认1)
●H:相机视结束绘制的高度比例(默认1)
●近裁剪面(Near Clip Plane):相对于相机最近绘制点

图7-52 相机设置
●远裁剪面(Far Clip Plane):相对于相机最远的绘制点
●视野(Field of view):沿着局部Y轴的相机视角宽度
●深度(Depth):相机的绘制顺序。具有较高深度的相机将绘制在较低深度相机的上面
●渲染通道(Rendering Path):包含根据图形设置、前向、延时等渲染通道方式
●渲染目标(Render Target):指示一个渲染纹理,相机视将输出到该纹理上。使用这个参数将使得相机不会渲染到屏幕上。
游戏相机是将你的游戏显示给玩家的必不可少的方法。它们可以被定制,脚本化或父子化以取得任何可以想象的效果。对于解谜游戏,你可以保持一个显示全部视的静态相机。对于一个FPS游戏,你应该将相机作为玩家角色的子物体,并将其放置在角色的视平面上。对于竞赛游戏,你需要使得相机能够跟随玩家的交通工具。
你可以创建多个相机并赋予它们不同的深度(Depth)。相机将从低深度想高深度绘制。换句话说,一个具有深度2的相机将绘制在具有深度1的相机之上。你可以调整视口矩阵(View Port Rect)属性以调整相机视在屏幕上的大小和位置。这可以创建多个小视图,例如导弹控制器,地图视图和后视镜等等。
清除标志每个相机在渲染时都存储了颜色和深度信息。屏幕上没有绘制的部分将为空,并在缺省情况下显示天空盒。当你使用多个相机的时候,每一个都将缓存它的颜色和深度信息,并积累每一个相机的渲染数据。当一个相机在你的屏幕上渲染它的视时,你可以设置Clear Flags来清除不同的缓存数据集。这个可以通过选择如下的四个选项之一来完成:
天空盒(Skybox)这是一个缺省的设置。屏幕上任何空的部分都将显示当前相机的天空盒。如果当前相机没有设置天空盒,它将缺省使用在渲染设置(Rendering Settings)中的天空盒。然后将使用背景颜色。(www.chuimin.cn)
固定颜色(Solid Color)任何空的部分都将显示当前相机的背景色(Background Color)。
仅深度(Depth only)如果你想绘制一个玩家的枪并且在处于环境内部时不需要裁剪它,你可以设置一个深度为0的相机来绘制场景,另一个深度为1的相机来单独绘制武器。武器相机的Clear Flags应该被设置为仅深度。这将保持场景显示在屏幕上,但是会丢弃所有不存在3D空间的所有信息。当武器被绘制时,不透明部分将完全覆盖所有已显示部分,而不论武器与墙有多么接近。
不清除(Don't Clear)这种模式将不会清除颜色或深度缓存。结果就是每一帧都将绘制在另一帧之上,就像涂抹效果一样。这个在游戏中并不常用,并最好与自定义shader一起使用。
裁剪面(Clip Planes)近裁剪面(Near)和远裁剪面(Far Clip Pline)属性决定相机视渲染的开始和结束位置。这两个平面与相机的方向垂直并相对于相机的位置来确定。近裁剪面是最近的开始渲染的位置,而远裁剪面是最远的位置。
裁剪面同时确定了深度缓存的精度。通常情况下,为了得到更好的精度你应该将近裁剪面移动到尽可能远。
为了使UI显示在所有其他相机视的顶部,你还需要设置Clear Flags和Depth only并确定相机的深度比其他相机的高。
正交视图使用正交相机将移除所有的景深效果,这在卷轴游戏和2D游戏中是很常用的。图7-53显示的是景深相机的效果图。

图7-53 景深相机
正交相机。物体并不会随着距离而变小。图7-54显示的是正交相机的效果。
渲染纹理将一个相机视图输出到一个纹理上,然后可以将该纹理应用到其他物体上。这使可以使得监视器的创建非常容易,还有倒影效果,等等。
提示
●相机可以像其他物体一样可以被实例化,父子化和脚本化。
●为了在竞技游戏中增加速度感,可以使用一个高视野(Field of View)。

图7-54 正交相机
●如果添加一个刚体(Rigidbody)组件,相机可以被用于物理模拟。
●在你的场景中你可以使用的相机数量没有限制。
●正交相机可以非常好的用于3D用户接口。
●Unity有预装的相机脚本,可以在Component→Camera Control中找到。试验它们的不同效果。
●如果你发现了深度问题(靠近其他面的一个面在闪烁),试着设置近裁剪面(Near Plane)尽可能大。
相关推荐