不少游戏支持玩家切换视角,例如,能够在第一人称视角和第三人称视角间来回切换的《穿越火线》,如图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游戏开发技巧集锦大学霸。