文档章节

Unity判断是否点击到UI上,获得具体UI物体

o
 osc_neocf7df
发布于 07/01 16:04
字数 274
阅读 22
收藏 0

精选30+云产品,助力企业轻松上云!>>>

项目中有个点击空白处收起一些操作菜单的需求,以前在NGUI的做法是添加一个不带图片的BoxCollider,然后判断是否点击在这个碰撞盒,UGUI下也可以使用类似的方法,添加一个空的Empty4Raycast来判断点击。本文是在UGUI下,利用EventSystem和射线检测来过滤ui区域,从而实现点击空白事件。

一、EventSystem判断是否点击ui

UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject()

利用这个接口可以知道是否点击到了ui上。

如果需要获得点击到的ui

EventSystem.current.currentSelectedGameObject

但是有个问题,ui上的勾上才能获取到。解决方法如下:

二、利用点击位置射线检测获取UI

/// <summary>
/// 点击屏幕坐标
/// </summary>
/// <param name="position"></param>
/// <returns></returns>
public GameObject GetFirstPickGameObject(Vector2 position)
{
    EventSystem eventSystem = EventSystem.current;
    PointerEventData pointerEventData = new PointerEventData(eventSystem);
    pointerEventData.position = position;
    //射线检测ui
    List<RaycastResult> uiRaycastResultCache = new List<RaycastResult>();
    eventSystem.RaycastAll(pointerEventData, uiRaycastResultCache);
    if (uiRaycastResultCache.Count > 0)
        return uiRaycastResultCache[0].gameObject;
    return null;
}

利用拿到的UI,可以判断过滤某些不需要响应的物体。

 

o
粉丝 0
博文 51
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Unity之初识

Unity的资源 Assets Store custom package Standard Assets 模型的组成 网格 mesh 材质 贴图的额外的属性,比如发光、反光 贴图 视野控制 透视(远小而近大) 正交 让物体紧挨 单位步长 顶点...

XBlock
2019/07/11
0
0
LinkVR 开发者手册

详细版,以及LinkVR软件和unity插件 链接:https://pan.baidu.com/s/15xQ7ZGMkJftpJyj4AKeyCg 提取码:8k67 1 版本要求 Unity Pro 2017.3.0 及以上版本(目前暂支持 2017.3-2018.2 版本,201...

osc_ywuazj5t
2019/11/08
2
0
Unity引擎UI模块知识Tree

现在主流的UI解决方案是UGUI和NGUI,近年来更是以UGUI为主,本期结合UWA学堂以及Blog的相关内容整理了《Unity引擎UI模块知识Tree》,主要介绍了UGUI的优化、框架完善及解决方案,也涉及到NGU...

UWA
06/20
0
0
UGUI优化系列(一) ------ 基础概念

本系列是学习siki学院UGUI整体解决方案-优化篇(Unity 2019.1.0f2)笔记 github地址:https://github.com/BlueMonk1107/UGUISolution 图集分块算法地址:https://github.com/DaVikingCode/U...

千喜
04/09
0
0
UGUI优化系列(一) ------ 基础概念

本系列是学习siki学院UGUI整体解决方案-优化篇(Unity 2019.1.0f2)笔记 github地址:https://github.com/BlueMonk1107/UGUISolution 图集分块算法地址:https://github.com/DaVikingCode/U...

千喜
04/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

功率放大芯片IR2184介绍

IR2184引脚定义: IN一般为脉冲信号,即全桥电路中的pwm波信号,一般可以通过调节它的占空比来控制智能车电机的转速。 SD信号为使能信号,高电平有效,芯片工作。 Vb是高侧浮动电源输入脚,H...

osc_baeiwmv4
25分钟前
21
0
认知成长:聊聊专业性和职业性

最近在忙双十一全链路压测的事情,由于岗位职责和团队定位等原因,和很多部门以及不同角色的同事都有接触。上周和某个团队的Leader开完会,简短的聊了下工作的推动和协同的一些事项。关键词就...

老_张
2019/10/21
7
0
百万年薪程序员的7点能力

点击蓝字关注,回复“职场进阶”获取职场进阶精品资料一份 几周前,微盟爆了个大雷,数据库让内部员工删库跑路。写了篇文章,做了一些我的判断:从微盟36小时故障,谈谈数据安全这点事。 很明...

潘永斌
04/01
13
0
收住你的下巴!第一人称视角宛如外星科技的自动化伐木!

声明:图片、视频均来自网络,若有侵权请联系处理 喜欢就点赞,随手转发 END 获取更多机械电子资讯 扫码关注 微信公众号:机电狂人 搜索关注 微博:机电狂人531 本文分享自微信公众号 - 工科...

工科生日常
2018/06/10
12
0
matlab教程:Matlab入门教程

  1、适当了解一些数值计算、数值分析以及最优化的理论   用Matlab的无非是做数值计算或者最优化,这也是Matlab的强项,Matlab有足够多的工具箱解决这些问题。但是在使用这些工具箱之前,...

SXXpenguin
26分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部