引用
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
核心代码
public EventSystem eventSystem; //ui 中的 EventSystem 组件
public GraphicRaycaster gRaycaster; //canvas 下的 GraphicRaycaster组件
void OutPut(Vector2 v2)
{
List<RaycastResult> raycasts = new List<RaycastResult>();
PointerEventData ped = new PointerEventData(eventSystem);
ped.position = v2;
gRaycaster.Raycast(ped, raycasts);
foreach (var raycast in raycasts) // 输出获取到底UI对象
{
print(raycast.gameObject.name);
}
}
补充
如果目标UI不想被采集到,可以通过取消勾选 Raycast Target 选项