unity5, UGUI刺穿问题解法

我希望在touch屏幕时player起跳,于是在playerControl.cs的Update函数中添加如下touch代码:

  if (Input.GetMouseButtonDown (0)) {//left button down
        jump ();
   }

同时我在屏幕左上角加了一个实现暂停的pause按钮,用的是Unity的UI Button。

于是问题来了,当我点pause按钮想暂停时,人物同时也会起跳!

即Button响应touch消息后并没能把它拦截下来,touch消息刺穿Button到达了屏幕。

解决UGUI刺穿问题目前在所有平台都有效的办法是在屏幕响应touch前先用graphicRaycaster当前touch是否落在ui上。

举例说明如下:

假设我的项目UI部分Hierarchy如下:

在UI节点上的脚本UIcontrol.cs中实现如下函数:

using UnityEngine.EventSystems;
using System.Collections.Generic;

   public bool isTouchOnUI()
    {
        EventSystem eventSystem = gameObject.transform.FindChild ("EventSystem").GetComponent<EventSystem> ();
        Transform[] childrenTransformList = GetComponentsInChildren<Transform>();
        foreach (Transform transform in childrenTransformList) {
            GraphicRaycaster graphicRaycaster = transform.GetComponent<GraphicRaycaster> ();
            if (graphicRaycaster) {
                PointerEventData eventData = new PointerEventData (eventSystem);
                eventData.pressPosition = Input.mousePosition;
                eventData.position = Input.mousePosition;
                List<RaycastResult> list = new List<RaycastResult> ();
                graphicRaycaster.Raycast (eventData, list);

          ////Debug.Log("list.Count:"+list.Count);
                if (list.Count > 0)
                    return true;
            }
        }
        return false;
    }

那么前面的touch代码改为:

        bool isTouchOnUI=m_gameRef.transform.Find("UI").GetComponent<UIcontrol>().isTouchOnUI();
            if (isTouchOnUI==false&&Input.GetMouseButtonDown (0)) {//left button down
                jump ();
            }

即可解决touch穿透问题。

参考:http://www.cnblogs.com/fly-100/p/4570366.html

时间: 2024-11-05 19:13:19

unity5, UGUI刺穿问题解法的相关文章

软件详细设计说明书

软件详细设计说明书 1.引言 1.1.编写目的 根据我们在上课找教室就的尴尬状况,我们团队决定开发课堂派派软件.每当去上课找教室时,会很找不到教室,导致迟到,或者走错教室,我顿感忧伤,实难想到跑了如此远的路,浪费如此多的时间,还影响到正常的学习,我的心被刺穿了,我想能不能有一款软件可以让我不再如此浪费宝贵时间,能不能有一款软件让我在百忙之中还可以查看到教室信息,于是课堂派派的想法诞生了. 1.2.背景说明 a.待开发的软件名称:基于Andriod的课堂派派 b.本项目的任务提出者:大家讨论的结果

极客DIY:打造属于自己的无线移动渗透测试箱

本文中介绍的工具.技术带有一定的攻击性,请合理合法使用. 你想不想拥有一款属于自己的移动无线渗透测试箱,如果你感兴趣,下面介绍的设备将会对你很有帮助.这个箱子被称为“MiTM(中间人攻击)WiFi箱”,使用这个箱子可以完成一些无线审计工作,同时也可以伪造接入点并完成中间人攻击. 工具要求 如果你真的想要做这个箱子那么你需要如下工具: 5或6mm的钻木/金属钻头 开口扳手(规格8) 钳子 手术刀/裁纸刀 尼龙扎带(俗称:勒死狗) 箱子的选择 这里有些建议,你选中的箱子最好是用过一次以上,另外需要注

静静的听

原创:http://www.cnblogs.com/sall No.10  一剪梅 费玉清 - 玉笛公子 <一剪梅>是1984年台湾同名电视剧的片头曲,原唱为林禹胜,经典版本由费玉清演唱,后又成为2009年霍建华.吕一主演电视剧<新一剪梅>的片头曲. 小编推荐这首歌,是因为费玉清,他声色淳朴,渗人心扉,在程序员编写代码的时候如果听到这首歌,确有如至清野的感动,本次推荐NO.10,非他莫属. No.9   HolidayGreen Day - Holiday <holiday&

哪些食品适合选用真空包装袋

食品包装袋在超市.餐饮店等地方随处可见,琳琅满目,形色各异.细细分辨,可以发现这些食品袋有真空袋.有充氮的,有密封的,也有非密封的.真空食品袋在其中占有很大的一部分.并不是所有的食品都能够使用真空包装袋的,那么哪些食品才适合呢? 1.  即食且高温杀菌的食品必须选用真空袋.即食食品在包装完成后需要进行杀菌,其中高温杀菌是常用的杀菌方式之一.食品袋在高温环境中,袋中的气体,在受热后膨胀.气体越多,膨胀的越厉害,若气体较多时,则很容易导致破袋漏气的现象.如我们常吃的鸭掌.鸭脖等休闲食品,选用的就是真

GRE高频词汇表wordlist2 词源

对应佛脚词汇wordlist2 Fervent 情感强烈的,热烈的 -ferv- 沸 , 热 + -ent 形容词词尾 Alleviate 减缓 alleviate = al (= ad ,使)+ levi (轻)+ ate (动词后缀)→使其变轻→减轻 levi ←拉丁语 levis (轻) 引申词义减轻,缓和. levity (轻浮.轻率), levitate (飘浮), elevate (提升.举起), relieve (减轻.救济) alleviation (缓和.镇痛剂) Mitiga

Opencv图像识别从零到精通(26)---分水岭

分水岭是区域分割三个方法的最后一个,对于前景背景的分割有不错的效果. 分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭.分水岭的概念和形成可以通过模拟浸入过程来说明.在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝,即形成分水岭. 分水岭

软件概要设计说明书

软件概要设计说明书 1.引言 1.1编写目的 根据我们在上课找教室就的尴尬状况,我们团队决定开发课堂派派软件.每当去上课找教室时,会很找不到教室,导致迟到,或者走错教室,我顿感忧伤,实难想到跑了如此远的路,浪费如此多的时间,还影响到正常的学习,我的心被刺穿了,我想能不能有一款软件可以让我不再如此浪费宝贵时间,能不能有一款软件让我在百忙之中还可以查看到教室信息,于是课堂派派的想法诞生了. 1.2背景 a.我们团队开发的软件是基于Andriod的图书查询的App--“课堂派派”. b.我们团队的成员

挠馅任俾傩r0pn8ydov7u15p5n

走回宿舍楼,刚到自己宿舍门前,霍雨浩就发现门是开着的,先是一惊后才意识到,恐怕是与自己同屋的舍友到了.可以说,这一枚玄水丹调动了霍雨浩身体全方位的提升,才有了这么大的变化.对他未来的修炼,更是有着巨大的好处.甚至连紫极魔瞳都随之进化了.霍雨浩这几天一直在不停的修炼,那日与王冬一战对他启发很大,他之所以能够克敌制胜,凭借的正是经过天梦冰蚕点醒后的那一招.天梦冰蚕似乎呆滞了一下,道:"我也不知道哎,我也没试过嘛.好啦,你和他继续尝试吧.无论是魂力融合还是武魂融合,带给你们的好处都是巨大的.以后你会慢

深刻检讨

一直以为只要看书就够了,我也确实一直在看书,但是这几天的动荡还有小钗道友让我知道这点努力完全不够,可以说小钗道友是导火索让我激起内心的不甘 前些天误入歧途学Swift,我想说我一定回去学Swift,但不是现在! 很多人的努力程度之低,根本轮不到天赋.这句话完全适于现在的我,我也有梦,我也想谈天说地聊源码,我也想成为国内优秀的javascript,我也不甘心平庸下去,现在的生活太淤泥,我要彻彻底底变态一回,如果说以我现在的努力,能达到我现在的水准的话,我觉得我还是有一点点天赋的,现在的工作场景提升