Unity3D-摄像机详解

前言

之前由于在学校基本涉及到对于摄像机的操作,无非就是拖拉拽。对这块没有进行深入了解,现在在项目中碰到多次涉及摄像机的调节,现在对遇到的问题进行总结

一、Camera组件

我们新建场景中,通常默认会有一个MainCamera,它身上就会挂载Camera组件
在场景中可拥有无限数量的摄像机。这些摄像机可设置为以任何顺序在屏幕上任何位置或仅在屏幕的某些部分进行渲染。
Unity3D-摄像机详解_第1张图片

二、属性

Unity3D-摄像机详解_第2张图片
Unity3D-摄像机详解_第3张图片Unity3D-摄像机详解_第4张图片
为了向玩家显示游戏,摄像机至关重要。可对摄像机进行自定义、为其编写脚本或对其进行管控以实现任何可想象的效果。对于拼图游戏,摄像机可保持静态以获得拼图的完整视图。对于第一人称射击游戏,可让摄像机跟随玩家角色,并将其置于角色的视线水平。对于赛车游戏,可能希望让摄像机跟随玩家的车辆。

可创建多个摄像机,并将每个摄像机分配给不同的__深度 (Depth)。按照从低__深度__到高__深度__的顺序绘制摄像机。换言之,深度__为 2 的摄像机将绘制在深度为 1 的摄像机之上。您可以调整 Normalized View Port Rectangle 属性的值,从而调整屏幕上摄像机视图的大小和位置。这样就能创建多种迷你视图,如导弹摄像机、地图视图、后视镜等。

三.详解

下面是重要属性官方文档解释

Clear Flags

Each Camera stores color and depth information when it renders its view. The portions of the screen that are not drawn in are empty, and will display the skybox by default. When you are using multiple Cameras, each one stores its own color and depth information in buffers, accumulating more data as each Camera renders. As any particular Camera in your scene renders its view, you can set the Clear Flags to clear different collections of the buffer information. This is done by choosing one of the four options:

每个相机在渲染时会存储颜色和深度信息。屏幕的未绘制部分是空的,默认情况下会显示天空盒。当你使用相机时,每一个都将自己的颜色和深度信息存储在缓冲区中,还将积累大量的每个相机的渲染数据。当场景中的任何特定相机进行渲染时,你可以设定清除标记以清除缓冲区信息的不同集合。可以通过下面四个四个选项之一来完成
Unity3D-摄像机详解_第5张图片

Skybox 天空盒

This is the default setting. Any empty portions of the screen will display the current Camera’s skybox. If the current Camera has no skybox set, it will default to the skybox chosen in the Render Settings (found in Edit->Render Settings). It will then fall back to the Background Color. Alternatively a Skybox component can be added to the camera

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

我们观察属性会发现,属性Clear Flags下面紧跟着属性Background,这个就是当Camera也没有Skybox组件,也没有设置系统天空盒时,用来显示的纯色。关于系统天空盒,在Unity 5.0中已经变更位置了。在Window->Light中可以找到。

Solid Color 纯色

Any empty portions of the screen will display the current Camera’s Background Color.

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

Depth Only 仅深度

If you wanted to draw a player’s gun without letting it get clipped inside the environment, you would set one Camera at Depth 0 to draw the environment, and another Camera at Depth 1 to draw the weapon alone. The weapon Camera’s Clear Flags should be set to to depth only. This will keep the graphical display of the environment on the screen, but discard all information about where each object exists in 3-D space. When the gun is drawn, the opaque parts will completely cover anything drawn, regardless of how close the gun is to the wall.

如果你想绘制一个玩家的枪,又不让它内部环境被裁剪,你会设置深度为0的相机绘制环境,和另一个深度为1的相机单独绘制武器。武器相机的清除标志(Clear Flags )应设置 为depth only。这将保持环境的图形显示在屏幕上,但会丢弃所有关于每个对象在三维空间中的位置的信息。当枪被绘制出来,不透明的部分将完全覆盖任何已绘制的事物,而不管枪到墙之间如何接近

Don’t Clear 不清除

该模式不清除任何颜色或深度缓存。其结果是,每帧绘制在下一帧之上,造成涂片效果。这不是用于游戏的典型方式,最好是与自定义着色器一起使用。

Clipping Planes 剪裁平面

开始和停止渲染位置到摄像机的距离

在这里插入图片描述在这里插入图片描述
Far默认是1000

举个例子,就是能摄像机能看到的最远东西

  • 这是Far1000,三个方块都能看到
    Unity3D-摄像机详解_第6张图片- 这是Far30,最远的紫色方块就不绘制了
    Unity3D-摄像机详解_第7张图片Near默认是0.3
    最近绘制点,原理同上,就是最近摄像机能显示的位置
    我们把摄像机Near改成10,最近的红色方块就不绘制了
    Unity3D-摄像机详解_第8张图片

未完待续。。。。。。。。。。。。。。

你可能感兴趣的:(Unity,游戏开发,unity)