摄像的渲染层的概念

  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)尽量不要滥用多摄像机协作。

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

转载于:https://www.cnblogs.com/cjlLearn/p/6703867.html

U3D教程多摄像机协同运行相关推荐

  1. iOS 11开发教程(三)运行第一个iOS 11程序

    iOS 11开发教程(三)运行第一个iOS 11程序 运行iOS11程序 创建好项目之后,就可以运行这个项目中的程序了.单击运行按钮,如果程序没有任何问题的话,会看到如图1.6和1.7的运行效果. 图 ...

  2. TWEN-ASR ONE 语音识别系列教程(1)--- 运行第一个程序

    TWEN-ASR ONE 语音识别系列教程(1)- 运行第一个程序 提示:作者使用 TWEN-ASR ONE V1.0开发板进行开发学习. 文章目录 前言 一.TWEN-ASR开发板介绍 二.程序编写 ...

  3. 【教程】Windows 11 运行安卓子系统 安装教程

    [教程]Windows 11 运行安卓子系统 安装教程 Android子系统的要求 确保Windows 11版本为22000.xxx或更高版本. 硬件必须支持并启用BIOS/UEFI虚拟化 确保微软商 ...

  4. UEFI 基础教程 (一) - 运行第一个APP HelloWorld

    UEFI 基础教程 (二) - 运行第一个APP HelloWorld 一.代码编写: 1.edk2/OvmfPkg/HelloWorld/HelloWorld.c: #include <Uef ...

  5. opengl 教程(15) 摄像机控制(2)

    原帖地址:http://ogldev.atspace.co.uk/www/tutorial15/tutorial15.html 本篇教程中,我们将实现鼠标控制摄像机的方位.摄像机可以有多个自由度(所谓 ...

  6. linux系统怎么用wifi,【教程】Wii安装运行可用WIFI的Linux系统全攻略

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 差不多做好准备后,安装流程开始: 1. 用WinPM给SD卡分两个主分区,第一个主分区大小:100MB到2GB之间(要保证第二个主分区有1.5GB以上的空 ...

  7. 图解VC#版DirectX开发教程二 - 摄像机

    用VC#进行DirectX开发,程序结构大体都是一样的. 上一篇博文,VC#版DirectX开发入门详解 http://blog.csdn.net/bcbobo21cn/article/details ...

  8. STM32 进阶教程 11 - RAM中运行程序

    前言 上一讲我们讲到stm32可以将代码直接下载到RAM中时行程序调试,同时可以有效避开STM32 Flash 擦写次数有限问题,其实除了仿真调试时将程序设置在RAM中可以解决FLASH擦写次数问题外 ...

  9. java记事本应用程序_Java教程:使用记事本编写运行Java程序

    Java教程经过上节的操作已经配置完了 Java 的开发环境,但并不清楚所配置的开发环境是否真的可以运行 Java 应用程序.为了解除这个疑虑,也为了使读者对开发 Java 应用程序的步骤有一个初步的 ...

  10. linux系统利用wifi上网,【教程】Wii安装运行可用WIFI的Linux系统全攻略

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 差不多做好准备后,安装流程开始: 1. 用WinPM给SD卡分两个主分区,第一个主分区大小:100MB到2GB之间(要保证第二个主分区有1.5GB以上的空 ...

最新文章

  1. javascript十六进制数字和ASCII字符之间转换
  2. mysql显示修改密码_MySQL修改密码
  3. 第二个Spring冲刺周期团队进展报告
  4. docker安装nacos步骤
  5. Ubuntu: 一个命令行下的翻译工具
  6. Android 内存泄漏分析指北
  7. Spring MVC核心知识
  8. opencv图片分类+特征图片截取
  9. PyQt5多线程刷新界面防假死
  10. 【Tiny4412】Tiny4412开发板介绍
  11. 病房计算机管理制度,全套协和医院管理制度大全【148个文件】
  12. 使用rundll32.exe运行dll函数
  13. 北京立交桥---- “迷桥”经历和不方便后悔
  14. Github连接不上问题
  15. Unity项目 - 捡苹果 Apple Picker
  16. cat3速度 rj45_技术词语:4G网CAT.4和CAT.3那个快?
  17. 电容或电感的电压_电流,电压,电阻,电容和电感
  18. alienware17R5折腾记
  19. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影系统
  20. 28-Linux-AWK使用范例

热门文章

  1. RxJava 学习笔记(七) --- Filtering 过滤操作
  2. plor 回归的r方_新祥旭2022考研真题高频词汇背诵50天(十三)
  3. Python OOP 项目实践:烤地瓜,搬家具
  4. vue2 html引入jquery,Vue添加引入jquery插件
  5. Tesseract文字训练,以及样本生成
  6. Fresco的解析和使用
  7. amesim子模型_Amesim制动卡钳仿真--制动液子模型
  8. 戴尔▪卡耐基《人性的弱点》阅读笔记(1)
  9. Android系统体系结构
  10. 常见数据收集网站-数学建模(二十二)