我们接着上一篇博文继续研究摄像机,这篇我们说下Unity中摄像机的切换,说到切换,前提是有多个
摄像机,所以我们新建二个摄像机。
我们再创建一个空物体挂上我们新建的脚本CameraSwitch,用来控制摄像机的切换
代码如下:
using UnityEngine;
using System.Collections;
public class CameraSwitch : MonoBehaviour {
public GameObject[] cameras;
public string[] shotcuts;
public bool changeAudioListener = true;
void Update()
{
int i = 0;
for(i=0; i<cameras.Length; i++)
{
if (Input.GetKeyUp(shotcuts[i]))
SwitchCamera(i);
}
}
void SwitchCamera(int index)
{
int i = 0;
for (i=0; i<cameras.Length; i++)
{
if (i != index)
{
if (changeAudioListener)
{
cameras[i].GetComponent<AudioListener>().enabled = false;
}
cameras[i].GetComponent<Camera>().enabled = false;
}
else
{
if (changeAudioListener)
{
cameras[i].GetComponent<AudioListener>().enabled = true;
}
cameras[i].GetComponent<Camera>().enabled = true;
}
}
}
}
脚本代码,将依据玩家按下的按键(键盘上的 1、2 和 3),决定启用对应摄像机的AudioListener 和 camera 组件,禁用其余两部摄像机的 AudioListener 和 camera 组件,玩家因此看到不同的游戏视图。
按1视图:
按2视图: