UGUI六大基础组件——Graphic Raycaster
一、组件作用
图形摄像投射器是用于检测UI输入事件的射线发射器。通过射线检测玩家和用户的交互,判断是否点击到了UI元素。
注意:不是通过碰撞器来检测的,而是通过图形来检测的。
二、参数解释

***************************************************************************
第一个参数:
注意Ignore Reversed Graphics是是否忽略反转图像,这里的反转包括上下反转和左右反转主要是关于x和y的反转,对与z的反转是无效的,因为绕Z的旋转还是面朝前,这是没有影响的,
而绕X和Y轴会使得反面超前。以一个Button为例。
原始状态:

改变Z轴:

变成:

只是旋转了,但还是面朝我们,可以点击。
改变X轴,就是绕X轴旋转,进行反转:

变成

可以发现,此时的按钮已经背对我们了,注意这里不是旋转得到的,可以从原图像旋转看看,会发现得不出这个图像,只有通过反转(绕X轴旋转)才能得到。
此时如果忽略反转图形(即该参数被勾选),那么反转得UI图像就被忽略了,就无法进行点击事件得响应了。
同样,改变Y轴,也会达到反转的效果。

变成:

同样会发现,只要勾选了该参数就无法响应点击事件。
*************************************************************************************
第二个参数
Blocking Object 是射线被哪些碰撞器阻挡,注意,这在渲染模式下是无法显示这个参数的作用的,因为渲染模式下的UI始终在3D物体之前不可能被阻挡。
当把渲染模式改成摄像机模式,可以检测这种模式的作用,在Button前创建一个3D物体和一个2D物体,由于2D物体没有碰撞器,所以我们给2D物体添加一个盒碰撞器。
在默认情况下,这个参数默认是None代表什么碰撞器都不能阻挡对UI的射线检测,此时无论在哪个物体上都不能不会阻挡按钮对点击事件的相应。
如图,会有响应,注意颜色变化。


如果将选项选择为Two2D那么在2D图像上点击就不会有按钮事件响应(注意颜色对比)


由于没有选择3D那么在3D物体上点击按钮任然会响应。

同样的原理如果选择3D或者All,那么相应的对象就会阻挡UI检测。
********************************************************************************
第三个参数
是代表被哪些层级挡住,如果取消某些层级,若一个物体选择了该层级,那么就算第二个参数选择了某个类型的碰撞器,只要层级被取消了也不会阻挡与UI的交互。
经常与第二个参数一起起作用。
********************************************************************************
总结:

UGUI六大基础组件——Graphic Raycaster的更多相关文章
- winform快速开发平台 -> 基础组件之分页控件
一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...
- CentOS安装LNMP环境的基础组件
注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 在安装LNMP环境之前,请确保已经使用yum安装了以下各类基础组件(如果系统已自带,还可以考虑yum update下基础组件): ...
- Ext学习-基础组件介绍
1.目标 学习对象获取,组件基础,事件模型以及学习ExtJS中的基础组件的应用. 2.内容 1.对象获取 2.组件原理以及基础 3.事件模型 4.常用组件的介绍 3.学习步骤 1 ...
- 如何从零开始实现一个soa远程调用服务基础组件
说起soa远程调用基础组件,最著名的莫过于淘宝的dubbo了,目前很多的大型互联网公司都有一套自己的远程服务调用分布式框架,或者是使用开源的(例如dubbo),或者是自己基于某种协议(例如hessia ...
- android学习——必学基础组件
android基础组件是一个Android的开发人员必须要了解,且深刻理解的东西: 1.应用程序基础 2.应用程序组件 2.1.活动(Activities) 2.2.服务(Services) 2.3. ...
- Android 基础组件
基础组件 所有的控件都可以在java代码中创建出来,并且大部分的属性都对应set和get方法,比如 View view = new View(Context context) context是上下文 ...
- Akka(17): Stream:数据流基础组件-Source,Flow,Sink简介
在大数据程序流行的今天,许多程序都面临着共同的难题:程序输入数据趋于无限大,抵达时间又不确定.一般的解决方法是采用回调函数(callback-function)来实现的,但这样的解决方案很容易造成“回 ...
- App架构师实践指南三之基础组件
App架构师实践指南三之基础组件 1.基础组件库随着时间的增长,代码量的逐渐积累,新旧项目之间有太多可以服用的代码.下面是整理的公共代码库. 2.关于加密密钥的保护以及网络传输安全是移动应用安全最关键 ...
- JMeter各个基础组件简介
刚从LoadRunner转到JMeter,对JMeter的各种概念比较懵.在这里记录下.欢迎大家关注我的个人微信号:测试杂货铺. JMeter的各个功能都是它的组件来完成或实现的,下面来对JMeter ...
- Ansible playbook基础组件介绍
本节内容: ansible playbook介绍 ansible playbook基础组件 playbook中使用变量 一.ansible playbook介绍 playbook是由一个或多个“pla ...
随机推荐
- WPFprism框架
1. Prism 简介Prism 是一个用于构建松耦合.可维护和可测试的 XAML 应用的框架,它支持所有还活着的基于 XAML 的平台,包括 WPF.Xamarin Forms.WinUI 和 ~~ ...
- 【音视频】FFmpeg打开视频 | 保存图片
1.初始化FFmpeg av_register_all(); //初始化FFMPEG 调用了这个才能正常使用编码器和解码器 但是这个函数如今已经没什么用了,它的就是把你定义和系统初始化的编码器和解码器 ...
- Git commit时提示错误时 解决办法
问题描述: * Please tell me who you are. Run git config –global user.email "you@example.com" ...
- 学习lua-02,引入其他lua文件,调用全局方法
local testlua = require "testlua" --testlua.compertoNum(1, 2, 4, 5, 11, 23, 543, 123, 45, ...
- go实现ls
package mainimport ( "fmt" "log" "os")func main () { f,err :=os.Open(& ...
- HttpClient请求接口实例demo
HttpClient是Apache中的一个开源的项目.它实现了HTTP标准中Client端的所有功能,使用它能够很容易地进行HTTP信息的传输.HttpClient的主要功能: 实现了所有 HTTP ...
- Hackintool查看CFG锁显示空白
Hackintool是黑苹果配置的得力工具,通过在Hackintool > 工具 > 从AppleIntelInfo中获取 可以看到cfg是否成功解锁.但是如果点击该按钮后输入密码执行CP ...
- window安装、启动consul
1.官网下载:https://www.consul.io/downloads.html 2.下载解压后的安装包只有一个consul.exe文件,双击可查看版本信息 3.设置环境变量,在Path下新增一 ...
- SpringBoot怎么管理封装java包的关系
首先SpringBoot直接写注解加依赖就可以了,基本上不用写xml,非常方便,在这里我只写了两个核心包 为什么选择jar类型? SpringBoot基本上是个应用程序了,只要用java命令程序去运行 ...
- phpmyadmin scripts/setup.php 反序列化漏洞(WooYun-2016-199433)(Kali)
phpmyadmin 2.x版本中存在一处反序列化漏洞,通过该漏洞,攻击者可以读取任意文件或执行任意代码. 通过vulhub靶场进行复现操作 1.首先搭建靶场环境(采用Kali) cd vulhu ...