Unity 解决UI点击穿透问题

原文http://blog.csdn.net/u014230923/article/details/51493382

这几天没事做一个小项目,发现点击UI界面时,如果鼠标下方物体有点击效果,在点击UI界面的同时,会触发鼠标下方物体的点击效果

写下此文,记录一下实践中遇到的一些问题,方便以后查看巩固

void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Click();
        }
    }

    //解决UI穿透问题
    void Click()
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hitinfo;
        //EventSystem.current.IsPointerOverGameObject()  如果当前鼠标在 ui 上返回true 否则返回false
        if (Physics.Raycast(ray, out hitinfo) && !EventSystem.current.IsPointerOverGameObject())
        {
            if (hitinfo.collider.tag==Tags.weapon)
            {
                Debug.Log("点击了weapon.");
            }
            else
            {<pre name="code" class="csharp"><span style="white-space:pre">		</span>//将要执行的方法,处理建造菜单方法
                ShowBulidMenu();
            }
        }
    }
 

以上代码为是原文中找的,自己修改了一点应用到自己项目中。
每天学习一点,就进步一点~!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值