http://blog.csdn.net/liujunjie612/article/details/45847877

我们接着上一篇博文继续研究摄像机,这篇我们说下Unity中摄像机的切换,说到切换,前提是有多个

摄像机,所以我们新建二个摄像机。

我们再创建一个空物体挂上我们新建的脚本CameraSwitch,用来控制摄像机的切换

代码如下:

  1. using UnityEngine;
  2. using System.Collections;
  3. public class CameraSwitch : MonoBehaviour {
  4. public GameObject[] cameras;
  5. public string[] shotcuts;
  6. public bool changeAudioListener = true;
  7. void Update()
  8. {
  9. int i = 0;
  10. for(i=0; i<cameras.Length; i++)
  11. {
  12. if (Input.GetKeyUp(shotcuts[i]))
  13. SwitchCamera(i);
  14. }
  15. }
  16. void SwitchCamera(int index)
  17. {
  18. int i = 0;
  19. for (i=0; i<cameras.Length; i++)
  20. {
  21. if (i != index)
  22. {
  23. if (changeAudioListener)
  24. {
  25. cameras[i].GetComponent<AudioListener>().enabled = false;
  26. }
  27. cameras[i].GetComponent<Camera>().enabled = false;
  28. }
  29. else
  30. {
  31. if (changeAudioListener)
  32. {
  33. cameras[i].GetComponent<AudioListener>().enabled = true;
  34. }
  35. cameras[i].GetComponent<Camera>().enabled = true;
  36. }
  37. }
  38. }
  39. }

脚本代码,将依据玩家按下的按键(键盘上的 1、2 和 3),决定启用对应摄像机的AudioListener 和 camera组件,禁用其余两部摄像机的 AudioListener 和 camera 组件,玩家因此看到不同的游戏视图。

按1视图:

按2视图:

按3视图:

 
 
 
 
 

unity3d切换相机常用脚本

1. var camera0 : Camera; //定义一个名字为camera0的相机对象 
   2. var camera1 : Camera; //定义一个名字为camera1的相机对象 
   3. function Update ()  
   4. {  
   5. if (Input.GetKey ("1")) //如果敲击键盘的"1" 
   6. {  
   7. camera1.enabled = true; //camera1激活 
   8. camera0.enabled = false; //camera1停止 
   9. }  
  10. if (Input.GetKey ("0")) //如果敲击键盘的"0" 
  11. {  
  12. camera1.enabled = false; //camera1停止 
  13. camera0.enabled = true; //camera1激活 
  14. }  
  15. }

var camera0 : Camera; //定义一个名字为camera0的相机对象 var camera1 : Camera; //定义一个名字为camera1的相机对象 function Update () { if (Input.GetKey ("1")) //如果敲击键盘的"1" { camera1.enabled = true; //camera1激活 camera0.enabled = false; //camera1停止 } if (Input.GetKey ("0")) //如果敲击键盘的"0" { camera1.enabled = false; //camera1停止 camera0.enabled = true; //camera1激活 } }

 

【转】Unity摄像机的使用二:摄像机的切换的更多相关文章

  1. EasyNVR网页H5无插件播放摄像机视频功能二次开发之直播通道接口保活示例代码

    背景需求 随着雪亮工程.明厨亮灶.手机看店.智慧幼儿园监控等行业开始将传统的安防摄像头进行互联网.微信直播,我们知道摄像头直播的春天了.将安防摄像头或NVR上的视频流转成互联网直播常用的RTMP.HT ...

  2. EasyNVR网页Chrome无插件播放摄像机视频功能二次开发之云台控制接口示例代码

    随着多媒体技术和网络通信技术的迅速发展,视频监控技术在电力系统.电信行业.工业监控.工地.城市交通.水利系统.社区安防等领域得到越来越广泛的应用.摄像头直播视频监控通过网络直接连接,可达到的世界任何角 ...

  3. Unity 3d 实现物体跟随摄像机视野运动

    https://blog.csdn.net/qq_31411825/article/details/61623857 Unity 3d 实现物体跟随摄像机视野运动Created by miccall ...

  4. Unity 基于Cinemachine计算透视摄像机在地图中的移动范围

    Unity中Cinemachine的基础功能介绍可详见之前写的博客: https://www.cnblogs.com/koshio0219/p/11820654.html 本篇的重点是讨论,在给定规则 ...

  5. 使用Photon引擎进行unity网络游戏开发(二)——Photon常用类介绍

    使用Photon引擎进行unity网络游戏开发(二)——Photon常用类介绍 Photon PUN Unity 网络游戏开发 Photon常用类介绍: IPunCallback PUNGIPunCa ...

  6. 10-THREE.JS perspective透视摄像机和orthographic正交摄像机区别

    <!DOCTYPE html> <html> <head> <title></title> <script src="htt ...

  7. Unity的Json解析<二>–写Json文件

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50378805 作者:car ...

  8. Unity——技能系统(二)

    Unity技能系统(二) Unity技能系统(一) Demo展示: 五.技能管理和释放 1.CharacterSkillSystem 技能系统类,给外部(技能按钮,按键)提供技能释放方法: 技能释放逻 ...

  9. Android项目实战(四十四):Zxing二维码切换横屏扫描

    原文:Android项目实战(四十四):Zxing二维码切换横屏扫描 Demo链接 默认是竖屏扫描,但是当我们在清单文件中配置横屏显示的时候: <activity android:name=&q ...

随机推荐

  1. Unix系统中常用的信号含义

    http://blog.csdn.net/u012349696/article/details/50687462 编号为1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ...

  2. 版本管理工具-SourceSafe

    一.什么是SourceSafe SourceSafe是Micrsoft公司推出的一款支持团队协同开发的配置管理工具,是Visual Studio的套件之一.因为其短小精悍,又继承了微软集成销售的一贯作 ...

  3. DLM分布式锁的实现机制

    1.AST简介 DLM进程(LMON.LMD)之间的跨实例通信是使用高速互联上的IPC层实现的.为了传递锁资源的状态,DLM使用了异步陷阱(AST),它在操作系统处理程序例程中实现为中断.纯粹主义者可 ...

  4. java菜鸟的Python学习之路(1)

    学习一门新的语言,应当抓住语言的共有特性,这样容易触类旁通,学习起来也十分的快捷愉悦 而语言的特性大约有以下元素 变量定义与类型 算术符号与逻辑符号 for 循环与 while 循环 数组,线性表等一 ...

  5. 第四篇、Swift_Podfile文件配置格式

    # Uncomment this line to define a global platform for your project platform :ios, '9.0' # Comment th ...

  6. 读取properties的简单方法,使用@Configuration

    配置类代码如下 import org.springframework.beans.factory.annotation.Value; import org.springframework.contex ...

  7. JavaScript 日期权威指南

    简介 JavaScript通过强大的对象为我们提供日期处理功能:日期. 本文确实_不是_谈论 Moment.js ,我认为它是处理日期的最佳库,你应该在处理日期时几乎总是使用它. Date对象 Dat ...

  8. Fakeapp 入门教程(2):使用篇!

    Fakeapp软件的使用主要分成了三个步骤, 使用之前请确保你的电脑配置还可以,推荐配置是:一张显存大于4G的N卡.Fakeapp是有支持CPU选项,但是用CPU跑非常慢. 获取脸部图片 训练模型 生 ...

  9. debug模式开启会做哪些事(源码分析)

    以往开发中不管是django框架下开发还是其它框架下开发, 只知道在开发阶段要开启debug模式, 却一直没有深究它会我们做哪些事, 今天使用tornado时偶然看到源码中写的很清楚,故写下来加深印象 ...

  10. python列表中的赋值与深浅拷贝

    首先创建一个列表 a=[[1,2,3],4,5,6] 一.赋值 a=[[1,2,3],4,5,6]b=aa[0][1]='tom'print(a)print(b)结果: [[1, 'tom', 3], ...