unity 中的UGUI 屏蔽鼠标穿透
void Update()
{
if(IsTouchedUI())
{
Debug.Log("当前触摸在UI上");
}
else
{
Debug.Log("当前没有触摸在UI上");
}
}
void OnMouseDown()
{
if(IsTouchedUI())
{
Debug.Log("当前触摸在UI上");
}
else
{
Debug.Log("当前没有触摸在UI上");
}
} bool IsTouchedUI()
{
bool touchedUI = false;
if (Application.isMobilePlatform)
{
if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch().fingerId))
{
touchedUI = true;
}
}
else if (EventSystem.current.IsPointerOverGameObject())
{
touchedUI = true;
}
return touchedUI;
}
现在我们只需要在没有触摸UI的时候进行射线检测或者其他操作就行了。
在Android机上进行UI防止穿透,写了一套全平台通用的代码如下。
void OnMouseDown()
{
if(!IsPointerOverGameObject(Input.mousePosition))
{
//没有点击UI
}
} public bool IsPointerOverGameObject(Vector2 screenPosition)
{
//实例化点击事件
PointerEventData eventDataCurrentPosition = new PointerEventData(UnityEngine.EventSystems.EventSystem.current);
//将点击位置的屏幕坐标赋值给点击事件
eventDataCurrentPosition.position = new Vector2(screenPosition.x, screenPosition.y); List<RaycastResult> results = new List<RaycastResult>();
//向点击处发射射线
EventSystem.current.RaycastAll(eventDataCurrentPosition, results); return results.Count > ;
}
我们将IsPointerOverGameObject统一修改为自己重载的方法,然后传进去Input.mouseposition 就可以了。
原文链接:http://blog.csdn.net/yupu56/article/details/54561553
unity 中的UGUI 屏蔽鼠标穿透的更多相关文章
- 关于Unity中的UGUI优化,你可能遇到这些问题
https://blog.uwa4d.com/archives/QA_UGUI-1.html 关于Unity中的UGUI优化,你可能遇到这些问题 作者:admin / 时间:2016年11月08日 / ...
- 在Unity中使用UGUI修改Mesh绘制几何图形
在商店看到这样一个例子,表示很有兴趣,他们说是用UGUI做的.我想,像这种可以随便变形的图形,我第一个就想到了网格变形. 做法1: 细心的朋友应该会发现,每个UGUI可见元素,都有一个‘Canvas ...
- unity中的UGUI一些组件的使用
一.Toggle Group(Script) LeftButtons上添加Toggle Group组件,属性Allow Switch Off打对勾,代表它的所有子物体上带有Toggle组件的属性Is ...
- 关于Unity 中对UGUI制作任务系统的编程
版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...
- html中input输入框屏蔽鼠标右键
<label> <input id="ckdestinationId" type="text" oncontextmenu="ret ...
- unity中实现监听鼠标的进入和退出某一个UI按钮
using UnityEngine; using System.Collections; using Assets.Code.myclass; using UnityEngine.UI; using ...
- qml 关于鼠标穿透的问题
最近在开发过程中,遇到了鼠标穿透的问题.结合网上给予的方法,都试了一圈,在这里总结一下: import QtQuick 2.9import QtQuick.Window 2.2import QtQui ...
- Unity UGUI鼠标穿透UI问题(Unity官方的解决方法)
简述 最近在用UGUI的时候遇到了鼠标穿透的问题,就是说在UGUI和3D场景混合的情况下,点击UI区域同时也会 触发3D中物体的鼠标事件.比如下图中 这里给Cube加了一个鼠标点击改变颜色的代码,如下 ...
- Unity中UGUI之Canvas属性解读版本二
Canvas Render Modes(渲染模式) 1.在screen空间中渲染2.在world空间中渲染 Screen Space-Overlay 在这个渲染模式中,UI元素将在场景的上面.如果场景 ...
随机推荐
- centos----------centos下安装谷歌浏览器
1.首先你已经安装了带有可视化界面的centos系统. 2.打开里面自带的一个浏览器,输入网址 http://chrome.richardlloyd.org.uk/install_chrome.sh ...
- Hbaseflush处理流程
Hbaseflush处理流程 flush的处理是个生产者消费者模式,通过MemStoreFlusher.requestFlush或者requestDelayedFlush来收集请求,通过多个Flush ...
- CentOS 7 nginx+tomcat9 session处理方案之session复制
我们的目标是所有服务器上都要保持用户的Session,那么将每个应用服务器中的Session信息复制到其它服务器节点上是不是就可以呢? 这就是Session的第二中处理办法:会话复制 192.168. ...
- 2017.11.18 手把手教你学51单片机-点亮LED
In Doing We Learning 在操作中学习.如果只是光看教程,没有实际的操作,对编程语言的理解很空泛,所以决定从单片机中学习C语言. #include<reg52.h> ...
- 2440nandflash启动过程再学习
2011-02-13 12:27:05 2440nandflash启动,先是nandflash的前4K自动复制到CPU的0x0地址开始的4K区域. 然后CPU开始运行这4K(刚才copy过来的代码), ...
- springMVC学习路线3-整合spring(annotion方式)
个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助.不过,如果用都不会,谈思想就变成纸上谈兵了!!!先技术,再思想.实践出真知. 1.基本概念 1.1 Spring Sp ...
- Shell 变量知识
1.自定义变量:自定义变量不能以数字开头. ()root#a=’cd /etc/’ #设置自定义变量. root#etho $a #使用变量. 2.全局变量:export可设置全局变量不能以数字开头. ...
- 2. Dubbo原理解析-Dubbo内核实现之基于SPI思想Dubbo内核实现(转)
转载自 斩秋的专栏 http://blog.csdn.net/quhongwei_zhanqiu/article/details/41577159 SPI接口定义 定义了@SPI注解 public ...
- com.borland.jbcl.layout.*;(XYLayout)
因为某些原因,涉及到需要运行一个十几年前的项目,项目一直报错,缺少.layoutXY,找了好久,CSDN那里一直需要下载,而且收费,而且很麻烦,本来都放弃了的这个jar包原来是java的IDE工具JB ...
- vue的环境配置
在vue越来越火的情况下,本人也开始加入到大军当中. 首先,列举下我们需要的东西: node.js 环境(npm包管理器) vue-cli 脚手架构建工具 cnpm npm的淘宝镜像 安装node.j ...