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(0).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 > 0; }
我们将IsPointerOverGameObject统一修改为自己重载的方法,然后传进去Input.mouseposition 就可以了。
原文链接:http://blog.csdn.net/yupu56/article/details/54561553
转载于:https://www.cnblogs.com/Study088/p/7903157.html
unity 中的UGUI 屏蔽鼠标穿透相关推荐
- Unity中的UGUI源码解析之事件系统(9)-输入模块(下)
Unity中的UGUI源码解析之事件系统(9)-输入模块(下) 接上一篇文章, 继续介绍输入模块. StandaloneInputModule类是上一篇文章介绍的抽象类PointerInputModu ...
- Unity中的UGUI源码解析之事件系统(2)-EventSystem组件
Unity中的UGUI源码解析之事件系统(2)-EventSystem组件 今天介绍我们的第一个主角: EventSystem. EventSystem在整个事件系统中处于中心, 相当于事件系统的管理 ...
- Unity中的UGUI源码解析之事件系统(8)-输入模块(中)
Unity中的UGUI源码解析之事件系统(8)-输入模块(中) 接上一篇文章, 继续介绍输入模块. Unity中主要处理的是指针事件, 也就是在2d平面上跟踪指针设备输入坐标的的事件, 这一类事件有鼠 ...
- Unity中的UGUI源码解析之事件系统(6)-RayCaster(下)
Unity中的UGUI源码解析之事件系统(6)-RayCaster(下) 接上一篇文章, 继续介绍投射器. GraphicRaycaster GraphicRaycaster继承于BaseRaycas ...
- Unity中的UGUI源码解析之事件系统(3)-EventData
Unity中的UGUI源码解析之事件系统(3)-EventData 为了在事件系统中传递数据, Unity提供了EventData相关的类来封装这一类数据. 了解这些结构有助于我们对后面模块的学习. ...
- Unity中的UGUI屏幕适配
本文分享Unity中的UGUI屏幕适配 屏幕适配一直是一个老生常谈的问题, 虽然只是项目一开始的时候会用到, 但是还是有很多东西需要学习和了解, 今天给大家分享下一些个人的学习和总结. 各种坐标 屏幕 ...
- Unity中的UGUI源码解析之图形对象(Graphic)(2)-ICanvasElement
Unity中的UGUI源码解析之图形对象(Graphic)(2)-ICanvasElement 在上一篇文章中, 我们对整个Graphic部分做了概述, 这篇文章我们介绍ICanvasElement和 ...
- 关于Unity中的UGUI优化,你可能遇到这些问题
一.界面制作 Q1:UGUI里的这个选项 ,应该是ETC2拆分Alpha通道的意思,但是在使用中并没起作用?请问有没有什么拆分的标准和特别要求呢? 据我们所知,alpha split 的功能最初只对 ...
- ugui unity 取消选择_关于Unity中的UGUI优化,你可能遇到这些问题
关键字 界面制作 网格重建 界面切换 加载相关 字体 一.界面制作 Q1:UGUI里的这个选项 ,应该是ETC2拆分Alpha通道的意思,但是在使用中并没起作用?请问有没有什么拆分的标准 ...
最新文章
- bzoj 1877: [SDOI2009]晨跑 (网络流)
- python turtle基本语法_Python 基础语法-turtle篇
- [Asp.net]AspNetPager分页组件
- SVN:安装svn进行上传和检出文件的常用命令
- tensorFlow13卷积神经网络发展
- Excel@C#.Net之单元格设置相关
- 推荐sqlLite管理工具.
- 打开Android Studio报错“Error running ***: Please select Android SDK”
- SQL Server更新联接概述
- aix创建oracle表空间,Oracle for AIX基于裸设备的表空间扩充步聚
- 夺命雷公狗---node.js---7fs模块初步
- 第24周SDAI缓解能否预测远期RA骨破坏受抑制
- 当你拥有足够的经验时,自然就会想到的东西---面向对象的设计原则!
- 【J2EE规范】什么是JNDI
- session的生命周期是怎样的
- 最新Unity 3D游戏开发学习资料集合
- Mybatis-Plus:Sql 注入器(扩展BaseMapper)
- 2011-11-27神马浮云的一天
- 论文笔记——HDD算法:异构网络中信息扩散的深度学习方法
- 解决“ImportError: cannot import name ‘_validate_lengths‘”问题
热门文章
- 用Microwindows(Nano-X)编写“hello world”
- 数据库设计新手容易掉进的陷阱(不断更新中)
- python set()函数讲解
- python3(十一)内置模块和类型转换
- csdn-markdown 编辑器
- 50万块钱,在哪个银行存钱最合适?
- 北京某打工子弟学校之二
- SCSI、FC、iSCSI三大协议概述
- 华科考研834计算机网络,2018年华中科技大学834计算机专业基础综合 (模)...
- python列表切片后得到剩余列表_python列表切片和嵌套列表取值操作详解