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

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

2.2  在多个游戏视图间切换

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

145935_2HVN_1585857.png

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

2.2.1  环境准备

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

145936_nyLJ_1585857.png

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     }

脚本代码,将依据玩家按下的按键(键盘上的123),决定启用对应摄像机的AudioListenercamera组件,禁用其余两部摄像机的AudioListenercamera组件。玩家将因此看到不同的游戏视图本文选自Unity游戏开发技巧集锦大学霸


转载于:https://my.oschina.net/u/1585857/blog/369302

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值