原文链接:使用多个相机
Unity场景创建时仅包含一个相机,在大多数情况下足够了。但是也可以在一个场景中创建多个相机,它们的视图可以以不同方式组合,下面将会介绍。
切换相机
默认情况下相机会将视图渲染到整个屏幕上,因此同时只能看到一个相机的视图(具有最大深度值的相机会显示)。使用脚本禁用相机并启用另外一个,可以切换相机显示场景的不同视图。比如可以用这个功能来切换地图和第一视角视图。
using UnityEngine;
using System.Collections;
public class ExampleScript : MonoBehaviour {
public Camera firstPersonCamera;
public Camera overheadCamera;
public void ShowOverheadView() {
firstPersonCamera.enabled = false;
overheadCamera.enabled = true;
}
public void ShowFirstPersonView() {
firstPersonCamera.enabled = true;
overheadCamera.enabled = false;
}
}
C#代码示例
在一个较大的相机内部渲染一个小相机
通常至少需要一个相机视图来覆盖整个屏幕(默认设置),但是在屏幕的一小块区域显示另外一个视图的功能经常很有用。比如可以用来显示一个驾驶游戏的后视镜,或者在第一视角游戏的屏幕一角显示一张迷你地图。可以使用相机的ViewPort Rect属性设置相机在屏幕上的矩形尺寸。
视口矩形的坐标相对于屏幕进行“归一”。底边和左边的坐标为0.0,顶边和右边的坐标为1.0。0.5的坐标值为屏幕中间。除了视口尺寸,还需要将较小视图相机的深度属性设置为一个比背景相机要大的值。准确的值并不重要,原则是较大深度值的相机渲染时会覆盖较小深度值相机。