[Unity3D]多个摄像机进行场景的切换

简介: 摄像机比作人的眼睛最适合不过了。比如:极品飞车里面可变换视觉角度,可以从多个角度观察汽车。 切换摄像机:一个键控制一个摄像机 这里是有多少台摄像机就要设置多少个建,有些场景可能有十多个视角,比如NBA2K游戏里面就有多达12个视角以上,下面这种...
摄像机比作人的眼睛最适合不过了。比如:极品飞车里面可变换视觉角度,可以从多个角度观察汽车。

切换摄像机:一个键控制一个摄像机

这里是有多少台摄像机就要设置多少个建,有些场景可能有十多个视角,比如NBA2K游戏里面就有多达12个视角以上,下面这种方法就不适用了,
[csharp]  view plain copy
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class ActiveCamera : MonoBehaviour {  
  5.   
  6.     public GameObject camFirst;  
  7.     public GameObject camThree;  
  8.     public GameObject camSky;  
  9.   
  10.     public float changeInterval = 1.0f;  
  11.   
  12.     public string showStr = "";  
  13.   
  14.     void Start () {  
  15.         FindCamera();  
  16.     }  
  17.   
  18.     //找到摄像机对象  
  19.     void FindCamera()  
  20.     {  
  21.         camFirst = GameObject.Find("Main Camera");//第一人称视角  
  22.         camThree = GameObject.Find("CameraThree");//第三人称视角  
  23.         camSky = GameObject.Find("CameraSky");//空中俯瞰视角  
  24.   
  25.         camFirst.active = true;  
  26.         camThree.active = false;  
  27.         camSky.active = false;  
  28.           
  29.     }  
  30.     void Update () {  
  31.       
  32.     }  
  33.   
  34.     void OnGUI()  
  35.     {  
  36.         ChangeAngle1();  
  37.     }  
  38.     void ChangeAngle1()  
  39.     {  
  40.         if (Input.GetKey(KeyCode.Alpha1))  
  41.         {  
  42.             SetFalse();  
  43.             camFirst.active = true;  
  44.             showStr = "切换至第三人称视角";  
  45.         }  
  46.        else if (Input.GetKey(KeyCode.Alpha2))  
  47.         {  
  48.             SetFalse();  
  49.             camSky.active = true;  
  50.             showStr = "切换至空中视角";  
  51.         }  
  52.         else if (Input.GetKey(KeyCode.Alpha3))  
  53.         {  
  54.             SetFalse();  
  55.             camThree.active = true;  
  56.             showStr = "切换至第一人称视角";  
  57.         }  
  58.         Debug.Log(showStr);  
  59.        // GUILayout.Button(showStr);  
  60.     }  
  61.       
  62.     void SetFalse()  
  63.     {  
  64.         camFirst.active = false;  
  65.         camThree.active = false;  
  66.         camSky.active = false;  
  67.     }  
  68.   
  69.   
  70.       
  71. }  


切换摄像机:一个键控制N个摄像机

下面尝试的代码不起效果,有待解决

[csharp]  view plain copy
  1. void ChangeAngle2()  
  2.    {  
  3.   
  4.        if (Input.GetKey(KeyCode.Z))  
  5.        {  
  6.   
  7.   
  8.            if (camFirst.active)  
  9.            {  
  10.                camFirst.active = false;  
  11.                camThree.active = false;  
  12.                camSky.active = true;  
  13.                showStr = "切换至第三人称视角";  
  14.   
  15.            }  
  16.   
  17.            if (camThree.active)  
  18.            {  
  19.                camFirst.active = false;  
  20.                camThree.active = false;  
  21.                camSky.active = true;  
  22.                showStr = "切换至空中视角";  
  23.   
  24.            }  
  25.   
  26.            if (camSky.active)  
  27.            {  
  28.                camFirst.active = true;  
  29.                camThree.active = false;  
  30.                camSky.active = false;  
  31.                showStr = "切换至第一人称视角";  
  32.   
  33.            }  
  34.        }  
  35.        Debug.Log(showStr);  
  36.        //GUILayout.Button(showStr);  
  37.    }  

关于Unity3D,我们有个专门技术讨论的大群,可以进行技术交流和咨询,群号:858550 欢迎进行技术讨论,里面有不少大牛
相关文章
|
3月前
|
图形学
Unity 不同Scene场景转换(简)
本文提供了Unity中实现场景转换的基本方法,包括编写传送脚本、创建传送门和玩家对象,并通过触发器实现玩家触碰传送门时切换到另一个场景的功能。
Unity 不同Scene场景转换(简)
|
3月前
|
图形学
小功能⭐️Unity获取场景中所有物体
小功能⭐️Unity获取场景中所有物体
小功能⭐️Unity获取场景中所有物体
|
5月前
|
图形学
初识Unity——基本模型、场景操作、世界坐标系和局部坐标系
初识Unity——基本模型、场景操作、世界坐标系和局部坐标系
136 1
|
5月前
|
定位技术 图形学 开发者
【Unity实战】切换场景加载进度和如何在后台异步加载具有庞大世界的游戏场景,实现无缝衔接(附项目源码)
【Unity实战】切换场景加载进度和如何在后台异步加载具有庞大世界的游戏场景,实现无缝衔接(附项目源码)
257 0
|
5月前
|
JavaScript 前端开发 C#
初识Unity——创建代码、场景以及五个常用面板(创建C#代码、打开代码文件、场景的创建、Project、Hierarchy、Inspector、Scene、Game )
初识Unity——创建代码、场景以及五个常用面板(创建C#代码、打开代码文件、场景的创建、Project、Hierarchy、Inspector、Scene、Game )
257 0
|
6月前
|
前端开发 C# 图形学
unity按钮绑定与场景切换
unity按钮绑定与场景切换
55 0
|
11月前
|
图形学
Unity重置场景
Unity重置场景
|
编解码 监控 vr&ar
Unity3D下如何采集camera场景数据并推送RTMP服务?
Unity3D是非常流行的游戏开发引擎,可以创建各种类型的3D和2D游戏或其他互动应用程序。常见使用场景如下:
143 1
|
数据采集 vr&ar 图形学
Windows平台Unity Camera场景实现轻量级RTSP服务和RTMP推送
随着VR技术在医疗、军事、农业、学校、景区、消防、公共安全、研学机构、展厅展馆,商场等场所普及,开发者对Unity平台下的直播体验提出了更高的要求。
110 0
|
API 图形学
【2023unity游戏制作-mango的冒险】-1.场景搭建
【2023unity游戏制作-mango的冒险】-1.场景搭建
99 0