当前位置: 移动互联网学院 > VR开发 > Unity3D基础—Camera
Unity3D基础—Camera 时间:2017-05-25     来源:移动互联网学院

1. Camera

相机(Camera)是向玩家捕获和显示世界的设备。通过自定义和操纵摄像机,你可以使你的游戏表现得真正独特。您在场景中摄像机的数量不受限制。他们可以以任何顺序设定放置在屏幕上的任何地方,或在屏幕的某些部分。

相机(Cameras)是显示你的游戏玩家必不可少的。他们可以进行定制,可以为之编写脚本,或者parented,达到任何所可以想象到的效果。对于一个拼图游戏,你可以让摄像机静止地看见整个拼图。对于一个第一人称射击游戏,你会相机作为玩家角色的父物体,把它放在人物的眼睛的高度。对于一个赛车游戏,你可能更希望把相机跟随您的玩家的车辆。

我们在Unity的Game视图中所看到的景象都是Camera进行渲染的。



1.1. Camera各个参数介绍

1.1.1. Clear Flags

确定了屏幕哪些部分将被清除。这是为了方便使用多个摄像机画不同的游戏元素。

每个摄像机在渲染场景时会存储颜色和深度的信息。不绘制在屏幕的部分是空的,并且默认情况下会显示天空盒。当您使用多台摄像机,在各自缓冲区存储它自己的颜色和深度信息,更多的数据会被各摄像机渲染。由于在你的场景任何特定相机渲染它的视野,你可以设置清除标志,清除不同的缓冲区信息。这是通过选择四个选项之一来完成的

Skybox:

这是默认设置。屏幕上的任何空的部分将显示当前相机的天空盒。如果当前的相机没有设置天空盒,它会默认在渲染设置(Render Settings )选择天空盒(在 Edit->Render Settings可以找到)。它将会变回背景色。另外天空盒组件可以添加到相机上。

Solid Color

任何空部分,屏幕显示为当前相机的背景色。

Depth Only

如果你想绘制一个玩家的枪,又不让它内部环境被裁剪,你会设置深度为0的相机绘制环境,和另一个深度为1的相机单独绘制武器。武器相机的清除标志(Clear Flags )应设置 为depth only。

Don't Clear

此模式不清除颜色或深度缓存。每一帧在下一帧结束后绘制,看上去像是涂抹(smear-looking)的效果。这在游戏中不常用,最好是在自定义着色器(custom shader)上使用。

1.1.2. Background

应用于视图中的所有元素绘制后,和没有天空盒的情况下,剩余屏幕的颜色



1.1.3. Culling Mask

包含层或忽略层将被相机(Camera)渲染。在Inspector窗口向对象分配层。

1.1.4. Projection

切换相机的能力,以模拟透视。

Perspective

Camera将使物体和透视完好无损。

Orthographic

相机会均匀地渲染物体,没有透视感。

1.1.5. View Port Rect

标明这台相机视图将会在屏幕上绘制的屏幕坐标(值0 - 1) 的4个值。

X,Y,W,H分别表示相机视图的开始水平位置,垂直位置,摄像机输出在屏幕上的宽度,摄像机输出在屏幕上的高度。

Viewport Rect是专门为定义一个当前照相机将会绘制到的屏幕一个特定部分 。你可以在屏幕右下角的放置地图视图,或在左上角放置导弹提示视图。你可以使用视口矩形创造一些独特的行为。

Viewport Rect可以很容易地创建双玩家(two-player)的分割画面效果。创建了两个摄像头后,改变两个相机的H值为0.5然后设置玩家1的Y值至0.5,玩家2的Y值设置为0。那么玩家1的摄像机就会从屏幕的中间到顶部显示,玩家2的摄像机就会从屏幕底部到屏幕中间显示(把屏幕按上下分成2半,上半部分是玩家1的,下半部分是玩家2的)

1.1.6. Depth

相机在渲染顺序上的位置。具有较低深度的相机将在较高深度的相机之前渲染。