
http://blog.****.net/liujunjie612/article/details/45847877
我们接着上一篇博文继续研究摄像机,这篇我们说下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视图:
按3视图:
unity3d切换相机常用脚本
1. var camera0 : Camera; //定义一个名字为camera0的相机对象
2. var camera1 : Camera; //定义一个名字为camera1的相机对象
3. function Update ()
4. {
5. if (Input.GetKey ("1")) //如果敲击键盘的"1"
6. {
7. camera1.enabled = true; //camera1激活
8. camera0.enabled = false; //camera1停止
9. }
10. if (Input.GetKey ("0")) //如果敲击键盘的"0"
11. {
12. camera1.enabled = false; //camera1停止
13. camera0.enabled = true; //camera1激活
14. }
15. }
var camera0 : Camera; //定义一个名字为camera0的相机对象 var camera1 : Camera; //定义一个名字为camera1的相机对象 function Update () { if (Input.GetKey ("1")) //如果敲击键盘的"1" { camera1.enabled = true; //camera1激活 camera0.enabled = false; //camera1停止 } if (Input.GetKey ("0")) //如果敲击键盘的"0" { camera1.enabled = false; //camera1停止 camera0.enabled = true; //camera1激活 } }