正如电影中的镜头用来将故事呈现给观众一样,Unity的相机用来将游戏世界呈现给玩家。你始终至少有一个相机在场景中,你也可以有多个。多相机可以给你一个双人分屏效果或创建高级的自定义效果。你可以让相机动起来,或用物理(组件)控制它们。几乎你能想到的任何事,都可以用相机变成可能,而且为了适合你的游戏风格,你可以用典型的或特殊的相机类型。
摄像机
相机是为玩家捕捉和显示世界的一种装置。通过定制和操作相机,可以让你的游戏外观与众不同。在一个场景中你可以有数量不限的相机。它们可以被设置为以任何顺序来渲染,在屏幕上的任何地方来渲染,或仅仅渲染屏幕的一部分。
属性
·Clear Flags 清除标记
决定屏幕的哪部分将被清除。当使用多个相机来描绘不同的游戏景象时,利用它是非常方便的
·Background 背景
在镜头中的所有元素描绘完成且没有天空盒的情况下,将选中的颜色应用到剩余的屏幕
·Culling Mask 剔除遮罩
包含或忽略相机渲染对象层。在检视视图中为你的对象指派层
·
rojection 投射
切换摄像机的模拟透视功能
·--> Perspective 透视
相机将用完全透视的方式来渲染对象。
·--> Orthographic 正交
相机将用没有透视感的方式均匀地渲染对象
·Size 大小
当设置了正交时摄像机的视口大小。
·Field of view 视野范围
相机的视角宽度,以及纵向的角度尺寸。
·Clipping Planes 剪裁平面
从相机到开始渲染和停止渲染之间的距离。
·--> Near 近点
开始描绘的相对于相机最近的点。
·--> Far 远点
开始描绘的相对于相机最远的点。
·归一化视口矩形
用四个数值来表示这个相机的视图将绘制在屏幕的什么地方,使用屏幕坐标系(值0-1)。
·--> X
相机视图将进行绘制的水平位置的起点
·--> Y
相机视图将进行绘制的垂直位置的起点
·--> W (Width) 宽度
相机输出到屏幕上的宽度
·--> H (Height) 高度
·相机输出到屏幕上的高度
·Depth 深度
绘图顺序中的相机位置,具有较大值的相机将被绘制在具有较小值的相机的上面
·Rendering Path 渲染路径
该选项定义相机将要使用的渲染方法
·--> Use Player Settings
使用播放器设置
该相机将使用任意一个播放器设置中所设置的渲染路径
·--> Vertex Lit 顶点光照
本相机对所有对象的渲染会作为顶点光照对象来渲染
·--> Forward 快速渲染
所有对象将按每种材质一个通道的方式来渲染,如同在Unity2.x中的标准
·--> Deferred Lighting 延迟照明
所有对象将无照明绘制一次,然后所有对象的照明将一起在渲染队列的末尾被渲染。
·Target Texture 目标纹理
(Unity Pro/Advanced only)
请参考Render Texture,该页包含了相机视图的输出。这个引用属性将禁用相机渲染到屏幕的功能。
细节
相机对于将你的游戏显示给玩家是必不可少的。它们可以被定制、被脚本化、或被子类化以实现几乎任何可以想象的效果。对于一个益智游戏,你要保持相机处于静态显示全部视角。对于第一人称射击游戏,你应该将相机作为玩家角色的子对象,并将其放置在与角色的眼睛等高水平上。对于一个赛车游戏,你可能更希望让相机跟随玩家的车辆。
你可以创建多个相机并且给每一个分配不同的深度。相机是按深度从低到高来绘制的,换言之,一个深度为2的相机将绘制在一个深度为1的相机之上。你可以调整标准视口矩形(参照前面的属性列表)的属性值来改变其大小和其在屏幕上的位置。这样你就可以创建多个小视窗,如导弹控制器,小地图窗口,后视镜等等。
Unity3d Camera的Clear Flags、Culling Mask和Depth三个属性的理解
先说说 Clear Flags:
Skybox:把颜色缓冲设置为天空盒,并完全清空深度缓冲
Solid:和天空盒一样,只是把颜色缓冲设置为纯色
Depth only:这个选项会保留颜色缓冲,但会清空深度缓冲
Don’t Clear:不清除任何缓冲
这个给我的感觉就是,空(没有物体)的部分用什么来填充,如果是Skybox,就用天空盒填充,如果是Solid,就用纯色填充,如果是Depth only取决于其他相机的深度,未渲染部分显示什么由深度小于本摄像机的内容来决定。
下面放几张图片作为例子:
我们通过看Scene的右下角的Camera Preview来看相机拍摄的场景。
Skybox:
Solid:
改变下Solid的背景颜色,发现Camera Preview背景颜色变了:
Depth Only:
这是Main Camera的属性,Depth为-1。
这是Camera属性,Depth为0,Clear Flags为Depth only:
运行,发现,Camera物体以外的地方全部是Main Camera所拍摄的。
取消Main Camera,发现只剩下Camera能拍摄到的东西。 
关于Culling Mask
Culling Mask是按层(即GameObject.layer)选择性的渲染部分场景。
当我们Culling Mask是Everything的时候,Scene右下角的Camera Preview会把背景也显示。
但当我们把Culling Mask设置为只显示UI层的时候,背景这时候就不会显示在此Camera中了。 
关于Depth
Depth决定相机在渲染顺序上的深度,具有较低深度的相机将在较高深度的相机之前渲染。
而如果把Main Camera的Depth设置为2(大于等于Camera的Depth):可以发现,运行后只能看到Main Camera拍摄的东西。 
本文详细介绍了Unity中的相机系统,包括如何使用不同类型的相机来呈现游戏世界,以及如何通过调整各种属性来实现特定的视觉效果。
2602

被折叠的 条评论
为什么被折叠?



