不少遊戲支持玩家切換視角,例如,能夠在第一人稱視角和第三人稱視角間來回切換的《穿越火線》,如圖2-7所示。本節就來學習,經過鍵盤按鍵,切換遊戲視圖的方法。在上一節使用的項目的基礎上,完成本節的示例演示本文選自Unity遊戲開發技巧集錦大學霸。函數
圖2-7 第一人稱視角與第三人稱視角學習
繼續爲項目添加一個攝像機,項目中擁有的3個攝像機的名字分別是:Main Camera、Camera1和Camera2。禁用後2個攝像機的Camera和Audio Listener組件。在Unity裏,單擊GameObject|Create Empty命令,建立一個空遊戲對象,並修改它的名字爲Switchboard。此時場景中的全部遊戲對象,以及3個攝像機的視圖如圖2-8所示本文選自Unity遊戲開發技巧集錦大學霸。spa
圖2-8 場景中的遊戲對象,以及3個攝像機的視圖orm
在Project視圖中,建立一個C#腳本文件,並命名爲CameraSwitch,打開此腳本文件,並填寫以下代碼:對象
01 using UnityEngine;遊戲
02 遊戲開發
03 public class CameraSwitch : MonoBehaviour開發
04 {string
05 public GameObject[] cameras;it
06 public string[] shortcuts;
07 public bool changeAudioListener = true;
08 //運行遊戲時,每一幀都調用此函數
09 void Update ()
10 {
11 int i = 0;
12 for(i=0; i<cameras.Length; i++)
13 {
14 if (Input.GetKeyUp(shortcuts[i]))
15 SwitchCamera(i);
16 }
17 }
18 void SwitchCamera ( int index )
19 {
20 int i = 0;
21 for(i=0; i<cameras.Length; i++)
22 {
23 if(i != index)
24 {
25 if(changeAudioListener)
26 {
27 cameras[i].GetComponent<AudioListener>().enabled = false;
28 }
29 cameras[i].camera.enabled = false;
30 }
31 else
32 {
33 if(changeAudioListener)
34 {
35 cameras[i].GetComponent<AudioListener>().enabled = true;
36 }
37 cameras[i].camera.enabled = true;
38 }
39 }
40 }
41 }
腳本代碼,將依據玩家按下的按鍵(鍵盤上的1、2和3),決定啓用對應攝像機的AudioListener和camera組件,禁用其他兩部攝像機的AudioListener和camera組件。玩家將所以看到不一樣的遊戲視圖本文選自Unity遊戲開發技巧集錦大學霸。