U3D教程多摄像机协同运行

摄像的渲染层的概念

  Unity中,每一个物体都有一个所处的“层”的概念,也就是物体的Layer,而摄像机中可以通过设置CullingMask来决定该摄像机只渲染哪些层的物体。对于UI来说,这个原理也一样使用,因为NGUI的每一个控件元素,本质上都属于一个GameObject,都有自己的层;每一个UI Root都会自带一个UI Camera来渲染UI。

  利用这个原理,可以实现多个摄像机来进行UI的渲染,例如,场景里可以放置一个3D摄像机负责渲染3D UI,还可以放置一个2D摄像机,负责渲染2D UI等。理论上来说可以放置无限多个摄像机来分别渲染不同层的内容。

  当场景中有两个摄像机都会渲染同一个层的时候,会造成画面重复显示。

多摄像机协作的应用范围

  因为Unity中很多元素不适合和UI控件放在一起进行显示,比如粒子、比如3D的模型。例如,在UI中显示一个3D模型,一般就会使用一个UI摄像机来负责渲染UI控件,用另一个摄像机来渲染3D模型,然后让这两个摄像机渲染的内容进行叠加,呈现出一幅完整的UI图像。

如何创建多个UI摄像机

  在NGUI中,如果创建了一个UI Root,当再点开Unity顶部的NGUI菜单,企图通过Create菜单去创建一个新的UI时,会发现创建UI的选项已经变成灰色,无法再创建,这是因为NGUI默认只允许场景中出现一个UI Root。

  要创建多个UI摄像机时,首先得考虑是否需要UI Root,如果有UI图片做成的控件,需要被UI Root根据屏幕自动进行缩放,那么就需要一个UI Root来管理这些UI控件。

  为了创建多个UI Root(每个UI Root会自带一个UI摄像机),可以关闭场景中已经存在的UI Root物体的UI Root组件,然后再单击Unity顶部NGUI菜单通过Create创建。

  如果不需要的多个UI Root,只需要一个新的UI Camera,那么可以在场景中新创建一个摄像机,创建方式为,在Unity顶部菜单单击GameObject,选择Create创建一个。

  然后在这个新创建的摄像机上附上一个UI Camera组件即可,组件附加方法可以在Inspector面板中依次单击AddComponent->NGUI->EventSystem(UI Camera)。如果它渲染的物体不需要接收UI的事件(如单击拖拽等),这个UI Camera组件就没有必要附上。

多摄像机协作的注意事项

  (1)规划并设置好每个物体的Layer,不要混乱。

  (2)设置好每个摄像机的CullingMask,确保场景中的摄像机之间不会重复渲染同一层。

  (3)对于多个UI Root的情况,更要检查它们所属的层和该UI Root渲染的层是否对应。

  (4)尽量不要滥用多摄像机协作。

(以上内容来源网络,学习过程记录)

时间: 2024-11-06 12:38:27

U3D教程多摄像机协同运行的相关文章

U3D教程宝典之两步实现超实用的XML存档

两步实现超实用的XML存档 本套存档的优点:易使用,跨平台,防作弊(内容加密 + 防拷贝) 脚本下载地址 使用方法非常简单:把GameDataManager和XmlSaver两个脚本添加至工程后(1)新建一个GameObject,起名GameDataManager并将GameDataManager脚本拖到上面.(2)在GameDataManager里的GameData类中添加需要储存的数据OK,跨平台防破解防拷贝的存档就搞定了!之后每次存档调用GameDataManager的Save函数,读档调

1、CC2541蓝牙4.0芯片中级教程——基于OSAL操作系统的运行流程了解+定时器和串口例程了解

本文根据一周CC2541笔记汇总得来—— 适合概览和知识快速索引—— 全部链接: 中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探 [插入]SourceInsight-工程建立方法 中级教程-OSAL操作系统(OSAL系统解基本套路) 中级教程-OSAL操作系统(进一步了解-OLED && 普通按键和5方向按键-中断!!!)这个系统驱动层和应用层不一样~ 中级教程-OSAL操作系统(ADC-光敏电阻) OSAL操作系统-实验16 串口波特率扩展 OSAL操作系统-实验1

《自拍教程53》Python_adb运行tcpdump工具

本篇文章与上一篇:Python_adb运行shell脚本类似, 上一篇主要的技术点是讲shell等文本文件,"隐藏"在Python代码里; 本篇文章主要是讲,如何将tcpdump这类二进制可执行文件, "隐藏"到Python代码里去. ::: story Android手机具备在线功能的应用程序,如果出现App无法连接网络, 或者网络异常等问题,开发一般需要测试同学抓包; 还有比如Android手机 流媒体协议(HTTP,HTTP Live, RTSP)测试等,开发

ANDROID STUDIO系列教程二--基本设置与运行

上面一篇博客,介绍了Studio的优点与1.0 RC的安装与上手体验,没想到google的更新速度这么快,已经出了RC 2版本,主要是修复一些bug.那么今天就带大家预览下Stduio的界面与基本功能. 项目结构 当我们新建一个项目的目录结构默认是这样的 可以看到和Eclipse的目录结构有很大区别,Studio一个窗口只能有一个项目,而Eclipse则可以同时存在很多项目,如果你看着不习惯可以点击左上角进行切换 切换到"project"模式下的目录结构是这样的,我个人也更习惯这种格式

【新手向】TensorFlow 安装教程:RK3399上运行谷歌人工智能

从AlphaGo大胜柯洁后,谷歌的人工智能备受关注.人工智能好像离我们好远,深度学习算法貌似非常复杂.但其实看看你的手机上的语音助手,相机上的人脸识别,今日头条上帮你自动筛选出来的新闻,还有各大音乐软件的歌曲"每日推荐"--形形色色的AI早已进入我们生活的方方面面.深刻的影响了着我们,可以说,这是一个AI的时代. 其实早在去年年底,谷歌就开源了其用来制作AlphaGo的深度学习系统TensorFlow,相信有不少同学曾经对着这款强大的机器学习系统蠢蠢欲动,官方的Tensorflow的教

Spring Boot 2.X 实战教程(8)运行程序

8.运行程序 将应用程序打包为jar并使用嵌入式HTTP服务器的最大优势之一是,您可以像运行任何其他应用程序一样运行应用程序. 8.1使用Maven插件 Spring Boot Maven插件包含一个run可用于快速编译和运行应用程序的目标.应用程序以分解形式运行,就像在IDE中一样.以下示例显示了运行Spring Boot应用程序的典型Maven命令:$ mvn spring-boot:run 您可能还想使用MAVEN_OPTS操作系统环境变量,如以下示例所示: $ export MAVEN_

SxsTrace使用教程(追踪软件运行的详细过程)

1.执行命令:SxsTrace Trace -logfile:SxsTrace.etl,启动跟踪 2.启动需要追踪的应用程序,例如:Foxmail程序 3.关闭应用程序(Foxmail)对话框 4.切回到命令行界面,点击回车停止跟踪 5.继续执行命令:SxsTrace Parse -logfile:SxsTrace.etl -outfile:C:\SxsTrace.txt,将跟踪信息导入到C:\SxsTrace.txt文本内 6.打开文本,内容大致如下: =================开始生

U3d学习-使用Unity3D开发2D游戏(上)

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,[狗刨学习网]unity极致学院,致力于打造业内unity3d培训.学习第一品牌. 1.创建一个Unity3D项目 2.将Camera设置为正交投影 游戏的输出画面是通过摄像机所观察的场景来实现的,将场景呈现到2D的计算机屏幕上具有两种不同的投影方式:透视投影和正交投影,默认状态下是透视投影. 透视投影 正交投影 3.添加相关对象模型 移动摄像机物

U3D游戏开发要思考的问题

狗刨学习网--欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,我们致力于打造业内unity3d培训.学习第一品牌. 代码驱动带来的技术题 游戏碎片化.U3D 引擎有个很有力的特色,就是实时编译运行.这意味着无论在任何时候,只要按下运行图标,当前的场景就会进入可执行状态.这导致了游戏在开发的过程中经常陷入一种不应当的自信状态.同时也导致了游戏内容长期处在碎片状态下,并低估游戏功能整合时可能遇到的困