默认情况下,视锥体围绕相机在场景中创建特定视角图像的组件。输出内容要么绘制到屏幕上,要么作为纹理捕获。更多信息
参见词汇表的中心线对称排列,但并不一定需要这样。您可以使视锥体倾斜,这意味着其中一侧与中心线的夹角小于另一侧。
这使得图像一侧的透视看起来更加浓缩,给人的感觉是观看者离该边缘可见的物体非常近。这在赛车游戏中可以用作一个例子;如果视锥体的底部边缘被压扁,观看者会觉得他们离赛道更近,从而增强速度感。
虽然 Camera 组件没有专门用于设置视锥体倾斜度的函数,但您可以通过以下两种方法实现:启用相机的 物理相机 属性并应用镜头偏移,或者添加一个脚本来修改相机的投影矩阵。
注意:在内置 渲染管道一系列操作,将场景的内容显示在屏幕上。Unity 允许您从预构建的渲染管道中选择,或编写自己的渲染管道。更多信息
参见词汇表中,使用倾斜视锥体的相机只能使用前向 渲染路径渲染管道用来渲染图形的技术。选择不同的渲染路径会影响灯光和阴影的计算方式。一些渲染路径更适合不同的平台和硬件。更多信息
参见词汇表。如果您的相机设置为使用 延迟着色内置渲染管道中的一种渲染路径,它对可以影响游戏对象的灯光数量没有限制。所有灯光都在每个像素上进行评估,这意味着它们都与法线贴图等进行正确交互。此外,所有灯光都可以具有曲面贴图和阴影。更多信息
参见词汇表渲染路径,并且您将其视锥体设置为倾斜,Unity 会强制该相机使用 前向渲染一种渲染路径,根据影响对象的灯光,对每个对象进行一次或多次渲染。前向渲染对灯光本身的处理方式也不同,具体取决于它们的设置和强度。更多信息
参见词汇表路径。
启用相机的 物理相机 属性以公开 镜头偏移 选项。您可以使用这些选项沿 X 和 Y 轴偏移相机的焦距中心,以最大程度地减少渲染图像的失真。
移动镜头会减小与移动方向相反的视锥体角度。例如,当您向上移动镜头时,视锥体底部与相机中心线的夹角会变小。
有关物理相机选项的更多信息,请参阅有关 物理相机 的文档。
以下脚本示例展示了如何通过修改相机的投影矩阵来快速实现倾斜视锥体。请注意,您只能在游戏运行时(播放模式)才能看到脚本的效果。
using UnityEngine;
using System.Collections;
public class ExampleScript : MonoBehaviour {
void SetObliqueness(float horizObl, float vertObl) {
Matrix4x4 mat = Camera.main.projectionMatrix;
mat[0, 2] = horizObl;
mat[1, 2] = vertObl;
Camera.main.projectionMatrix = mat;
}
}
C# 脚本示例
无需了解投影矩阵的工作原理即可使用此脚本。horizObl 和 vertObl 值分别设置水平和垂直倾斜度。值为零表示没有倾斜度。正值会将视锥体向右或向上移动,从而压扁左侧或底部。负值会向左或向下移动,从而压扁视锥体的右侧或顶部。如果将此脚本添加到相机并切换到游戏运行时的 场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您放置环境、障碍物和装饰物,本质上是在片段中设计和构建游戏。更多信息
参见词汇表视图,则可以直接看到效果;当您在 检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
参见词汇表中更改 horizObl 和 vertObl 的值时,相机的视锥体线框图也会发生变化。任何一个变量的值为 1 或 -1 表示视锥体的一侧完全贴合中心线。虽然很少需要,但可以使用超出此范围的值。