zoukankan      html  css  js  c++  java
  • ugui点击穿透判断

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.EventSystems;
    
    public class ClickTest : MonoBehaviour {
    
        // Use this for initialization
        void Start () {
            
        }
    
        // Update is called once per frame
        void Update()
        {
    
            //Debug.Log(EventSystem.current.gameObject.name);
            if (Input.GetMouseButtonDown(0))
            {
                if (CheckGuiRaycastObjects()) return;
    
                RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
                if (hit.collider != null)
                {
                    Debug.Log("点击");
                }
            }
        }
    
        /// <summary>
        /// 基于ugui的eventsystem判断是否有ui遮挡
        /// </summary>
        /// <returns></returns>
        bool CheckGuiRaycastObjects()
        {
            PointerEventData eventData = new PointerEventData(EventSystem.current);
            eventData.pressPosition = Input.mousePosition;
            eventData.position = Input.mousePosition;
    
            List<RaycastResult> list = new List<RaycastResult>();
            EventSystem.current.RaycastAll(eventData, list);
            //Debug.Log(list.Count);
            return list.Count > 0;
        }
    }
  • 相关阅读:
    第 5 章 Nova
    第 5 章 Nova
    第 5 章 Nova
    第 5 章 Nova
    第 5 章 Nova
    第 5 章 Nova
    第 5 章 Nova
    vba:提取字符串中间字符
    vba:根据给定单元格搜索目标值
    vba:合并当前目录下所有工作簿的全部工作表
  • 原文地址:https://www.cnblogs.com/sanyejun/p/11376562.html
Copyright © 2011-2022 走看看