大牛专栏 收藏本版 已有21人收藏 +发表新主题
查看: 13505|回复: 0
打印 上一主题 下一主题

Capricorn|Unity3d UGUI屏蔽点击按钮穿透事件

[复制链接]

Capricorn|Unity3d UGUI屏蔽点击按钮穿透事件

zzlple 发表于 2016-7-23 15:32:14 浏览:  13505 回复:  0 只看该作者 复制链接
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections.Generic;

public class UITouchEvents : MonoBehaviour
{

    public EventSystem eventSystem;
    public GraphicRaycaster graphicRaycaster;
    static UITouchEvents uie;
    private PointerEventData eventData;
    private List<RaycastResult> list = new List<RaycastResult> ();
   

    public static UITouchEvents Instance {

        get {


            if (null == uie) {
            
                uie = FindObjectOfType (typeof(UITouchEvents)) as UITouchEvents;
            }

            return uie;

        }

    }

    // Use this for initialization
    void Start ()
    {
        eventData = new PointerEventData (eventSystem);


    }

    public bool CheckGuiRaycastObjects ()
    {

        list.Clear ();
        eventData.pressPosition = Input.mousePosition;
        eventData.position = Input.mousePosition;

        graphicRaycaster.Raycast (eventData, list);
   
        Debug.Log ("CheckUGUIOBJ" + ":" + list.Count + "---------------------");

        return list.Count > 0;
    }



}

在容易穿透的地方调用

CheckGuiRaycastObjects ()函数判断返回值如果true就说明穿透了
分享至:
| 人收藏
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中级会员

Copyright © 2013-2017 ARinChina-增强现实中国技术论坛   All Rights Reserved.