博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在多个游戏视图间切换环境准备
阅读量:6720 次
发布时间:2019-06-25

本文共 1383 字,大约阅读时间需要 4 分钟。

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

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游戏开发技巧集锦大学霸。

转载地址:http://dhcmo.baihongyu.com/

你可能感兴趣的文章
H3C交换机配置镜像端口
查看>>
ESXI6.0(6.7)实践——惠普A6 7310主板,APU,Realtek网卡的安装之路
查看>>
我的友情链接
查看>>
26期学员参观森华易腾移动IDC机房有感
查看>>
三、一个简单的BDB JE例子
查看>>
在Windows Server2008R2安装Oracle Database 11g Release 2
查看>>
借助mysql和DNS view实现智能DNS(centos6.3 x64环境)
查看>>
维纳-辛钦 (Wiener–Khinchin) 定理
查看>>
修改mysql的数据库密码
查看>>
Nginx安装图文
查看>>
解决DataNode启动不起来原因
查看>>
tomcat处理jsp页面的流程
查看>>
fedora的一些使用记录(二)
查看>>
为什么电子人的世界阴盛阳衰?
查看>>
解析InputStream流工具
查看>>
我的友情链接
查看>>
varchar2转clob
查看>>
ansible--循环
查看>>
Jenkins安装部署篇
查看>>
(原创)BFS广度优先算法,看完这篇就够了
查看>>