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 ...
随机推荐
- [资料] 设计原理图资料保存:FMC210-1路1Gsps AD、1路2.5Gsps DA的FMC子卡解决方案
FMC210-1路1Gsps AD.1路2.5Gsps DA的FMC子卡 一.板卡概述 FMC-1AD2DA是北京太速科技自主研发的一款1路1G AD采集.1路2.5G DA回放的FMC子卡.板卡采用 ...
- JS学习-异步JS
异步JS setTimeout() 我们希望传递给setTimeout()中运行的函数的任何参数,都必须作为列表末尾的附加参数传递给它. function sayHi(who) { alert('He ...
- npm设置和取消代理的方法
设置代理 npm config set proxy=http://server:port npm config set https-proxy https://server:port // https ...
- CentOS7 修改root密码
能登录系统修改root密码 passwd root(可以是其他什么用户) 输入新密码(两次) 忘记root密码不能进入系统,修改root密码 1.开机进入grub界面按e进入单用户编辑模式 2 ...
- kora 简单使用实现Api接口 以及mongodb简单使用
//api.jsconst Koa = require('koa'); const router = require('koa-router')(); //路由 const bodyParser = ...
- java 项目中Error linstenerStart 报错解决方法
项目中经常会遇到如下报错: 严重:Error linstenerStart 这种报错,我们看不出来到底是出现了什么问题.下面我们就一步一步来解决: (1)首先进入项目的classes目录下: (2)进 ...
- 全局 使用 stylus 变量
首先 安装 啦 npm i stylus stylus-loader -D 之后 使用全局变量 然后在组件中引用改变量 -->没有用! 原因还没有在build/utils.js文件 全局引入 ...
- UE4 编辑器的非运行时,给StaticMeshActor设置StaticMesh
用 UAssetManager::GetStreamableManager().LoadSynchronous<UStaticMesh>(FSoftObjectPath(packagePa ...
- TMP_InputField 理解
一.输入框激活问题 public void ActivateInputField(); //激活输入框 public void DeactivateInputField(bool clearSelec ...
- Ubuntu22.04 KubeSphere 安装K8S集群
Ubuntu22.04 KubeSphere 安装K8S集群_Ri0n的博客-CSDN博客 一.系统环境系统:Ubuntu 22.04集群IP分布hostname 角色 IP地址master mast ...