UnityVR入门之六 如何让3DUI层级在场景模型之上

一、问题来源

根据 UnityVR入门之五 射线检测交互-CSDN博客 这一章节我们了解到VR要与UI交互需要将Canvas设置为World Space属性,然后使用碰撞盒的方式进行射线交互。

正常我们ui是始终叠加在3d场景之上的,如此设置当ui与场景模型相交就会遮挡穿模

二、解决3DUI穿模问题

为了解决这个问题我采用了相机的Culling Mask层级剔除特性,将ui设置为自定义的UpperLayer层级,主相机剔除此层级可以得到场景中除UpperLayer层级的所有层级物体画面。然后在主相机下在新建相机让其只渲染UpperLayer层级并且这个相机的Depth深度要高于主相机。

1.设置UI层级为自定义的UpperLayer层级

2.主相机VRCamera剔除UpperLayer层级

3.新建VRUIPanelCamera子相机,让其只渲染UpperLayer层同时设置Depth深度要大于主相机

主相机的深度是-1,我这里设置子相机为0 。这时就可以看到UI画面了

三、核心原理

使用过绘图软件例如PS的同学应该明白,我们做图都是有层级的,下层会遮挡上层的图片。

 

我们上方设置相机的层级剔除是为了得到我们需要的场景画面,剔除过后主相机显示的画面是场景画面,而子相机显示的是ui画面。图片有了就剩下层级的设置了,相机的Depth深度就代表了画面的层级,当主相机层级低于子相机时,子相机的画面就会覆盖在主相机上。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/327639.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 2807. 在链表中插入最大公约数【链表,迭代,递归】1279

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

C# Entity Framework 中不同的数据的加载方式

延迟加载 延迟加载是指在访问导航属性时,Entity Framework 会自动查询数据库并加载相关数据。这种方式在我们需要访问导航属性时比较方便,因为我们无需手动加载相关数据,而且只会在需要时才会进行查询,从而减少了不必要的开销。但…

uniapp 文字超出多少字,显示收起全文按钮效果demo(整理)

收起展开 <template><view class"font30 color000 mL30 mR30"><text :class"showFullText ? : clamp-text">{{ text }}</text><view v-if"showToggleBtn && text.length > 42" click"toggleShowFu…

计算机组成原理 指令流水线

文章目录 指令流水线指令流水线的概念流水线性能分析流水线的吞吐率流水线的加速比流水线的效率 影响流水线的因素结构相关 (资源冲突)数据相关 (数据冲突)控制相关 (控制冲突) 流水线分类超量流水线 指令流水线 #mermaid-svg-vSsJnNqZf24LgjVK {font-family:"trebuchet m…

轻量检测模型NonoDet-Plus解析

官方解读&#xff1a;超简单辅助模块加速训练收敛&#xff0c;精度大幅提升&#xff01;移动端实时的NanoDet升级版NanoDet-Plus来了&#xff01; - 知乎 official implementation&#xff1a;https://github.com/RangiLyu/nanodet Backbone backbone部分没有变化&#xff0…

时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时序预测对比

时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时间序列预测对比 目录 时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时间序列预测对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现EEMD-SSA-BiLSTM、…

TypeScript 从入门到进阶之基础篇(三) 元组类型篇

系列文章目录 TypeScript 从入门到进阶系列 TypeScript 从入门到进阶之基础篇(一) ts基础类型篇TypeScript 从入门到进阶之基础篇(二) ts进阶类型篇TypeScript 从入门到进阶之基础篇(三) 元组类型篇TypeScript 从入门到进阶之基础篇(四) symbol类型篇 持续更新中… 文章目录 …

Kettle Local引擎使用记录(基于Kettle web版数据集成开源工具data-integration源码)

Kettle Web &#x1f4da;第一章 前言&#x1f4da;第二章 demo源码&#x1f4d7;pom.xml引入Kettle引擎核心文件&#x1f4d7;java源码&#x1f4d5; controller&#x1f4d5; service&#x1f4d5; 其它&#x1f4d5; maven settings.xml &#x1f4d7;测试&#x1f4d5; 测试…

Mac打包Unix可执行文件为pkg

Mac打包Unix可执行文件为pkg 方式一&#xff1a;通过packages页面打包 1.下载packages app Distribution&#xff1a;自定义化更高&#xff0c;包括修改安装页面的内容提示 我这里主要演示Distribution模式的项目&#xff1a;通过unix可执行文件postinstall.sh脚本实现通过ma…

软件测试|Docker exec命令详细使用指南

简介 Docker exec命令是Docker提供的一个强大工具&#xff0c;用于在正在运行的容器中执行命令。本文将详细介绍Docker exec命令的用法和示例&#xff0c;帮助大家更好地理解和使用这个命令。 Docker是一种流行的容器化平台&#xff0c;允许我们在容器中运行应用程序。有时候…

YOLOv5训练损失、精度、mAP绘图功能 | 支持多结果对比,多结果绘在一个图片(消融实验、科研必备)

一、本文介绍 本文给大家带来的是YOLOv5系列的绘图功能,我将向大家介绍YOLO系列的绘图功能。我们在进行实验时,经常需要比较多个结果,针对这一问题,我写了点代码来解决这个问题,它可以根据训练结果绘制损失(loss)和mAP(平均精度均值)的对比图。这个工具不仅支持多个文件…

MySQL数据库学习二

2 MySQL InnoDB 锁的基本类型 https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html 官网把锁分成了 8 类。所以我们把前面的两个行级别的锁&#xff08;Shared and ExclusiveLocks&#xff09;&#xff0c;和两个表级别的锁&#xff08;Intention Locks&#xff09;…