unity ui穿透点击

unity ui穿透点击

复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

//Encoding:UTF-8
public class UIPointerEventPenetrate : MonoBehaviour, IPointerClickHandler
{
    List<RaycastResult> results = new List<RaycastResult>();
    public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log("=dianji=");
        Psss(eventData, ExecuteEvents.pointerClickHandler);
    }

    public void Psss<T>(PointerEventData data, ExecuteEvents.EventFunction<T> function) where T : IEventSystemHandler
    {
        results.Clear();
        EventSystem.current.RaycastAll(data, results);
        GameObject current = data.pointerCurrentRaycast.gameObject;
        for (int i = 0; i < results.Count; i++)
        {
            Debug.Log("=dianji=" + results[i].gameObject);
            if (current != results[i].gameObject)
            {
                if (ExecuteEvents.Execute(results[i].gameObject, data, function))
                {
                    break;
                }
            }
        }
    }
}
复制代码

 

posted @   三页菌  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示