您的位置:首页 > 其它

在多个游戏视图间切换环境准备

2015-01-19 00:00 120 查看
摘要: 在多个游戏视图间切换环境准备

在多个游戏视图间切换环境准备

2.2 在多个游戏视图间切换

很多游戏支持玩家切换视角,例如,可以在第一人称视角和第三人称视角间来回切换的《穿越火线》,如图2-7所示。本节就来学习,通过键盘按键,切换游戏视图的方法。在上一节使用的项目的基础上,完成本节的示例演示本文选自Unity游戏开发技巧集锦大学霸。



图2-7 第一人称视角与第三人称视角

2.2.1 环境准备

继续为项目添加一个摄像机,项目中拥有的3个摄像机的名字分别是:Main Camera、Camera1和Camera2。禁用后2个摄像机的Camera和Audio Listener组件。在Unity里,单击GameObject|Create Empty命令,创建一个空游戏对象,并修改它的名字为Switchboard。此时场景中的所有游戏对象,以及3个摄像机的视图如图2-8所示本文选自Unity游戏开发技巧集锦大学霸。



图2-8 场景中的游戏对象,以及3个摄像机的视图

2.2.2 编写脚本

在Project视图中,创建一个C#脚本文件,并命名为CameraSwitch,打开此脚本文件,并填写如下代码:

01 using UnityEngine;

02

03 public class CameraSwitch : MonoBehaviour

04 {

05 public GameObject[] cameras;

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游戏开发技巧集锦大学霸。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息