using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;
///
/// 检测穿透点击,是否点击了UI下方的按钮
///
public class RaycastDetect : MonoBehaviour
{
public UnityAction ClickAction;
public UnityAction DefaultAction;
void Update()
{
if (Input.GetMouseButtonUp(0))
{
// 检测点击事件
PointerEventData pointerData = new PointerEventData(EventSystem.current)
{
position = Input.mousePosition
};
// 获取点击的UI对象
var results = new System.Collections.Generic.List();
EventSystem.current.RaycastAll(pointerData, results);
if (results.Count > 0)
{
GameObject clickedObject = results[0].gameObject;
if (clickedObject != this.gameObject)
{
//上层有其他UI
return;
}
foreach (var result in results)
{
//获取点击的按钮
if (result.gameObject.GetComponent