在多個遊戲視圖間切換環境準備

在多個遊戲視圖間切換環境準備 

2.2  在多個遊戲視圖間切換

不少遊戲支持玩家切換視角,例如,能夠在第一人稱視角和第三人稱視角間來回切換的《穿越火線》,如圖2-7所示。本節就來學習,經過鍵盤按鍵,切換遊戲視圖的方法。在上一節使用的項目的基礎上,完成本節的示例演示本文選自Unity遊戲開發技巧集錦大學霸函數

2-7  第一人稱視角與第三人稱視角學習

2.2.1  環境準備

繼續爲項目添加一個攝像機,項目中擁有的3個攝像機的名字分別是:Main CameraCamera1Camera2。禁用後2個攝像機的CameraAudio Listener組件。在Unity裏,單擊GameObject|Create Empty命令,建立一個空遊戲對象,並修改它的名字爲Switchboard。此時場景中的全部遊戲對象,以及3個攝像機的視圖如圖2-8所示本文選自Unity遊戲開發技巧集錦大學霸spa

2-8  場景中的遊戲對象,以及3個攝像機的視圖orm

2.2.2  編寫腳本

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     }

腳本代碼,將依據玩家按下的按鍵(鍵盤上的123),決定啓用對應攝像機的AudioListenercamera組件,禁用其他兩部攝像機的AudioListenercamera組件。玩家將所以看到不一樣的遊戲視圖本文選自Unity遊戲開發技巧集錦大學霸

相關文章
相關標籤/搜索