void InspectUI()
{
List<RaycastResult> list = new List<RaycastResult>();
//场景中的EventSystem
PointerEventData eventData = new PointerEventData(EventSystem.current);
//鼠标位置
eventData.pressPosition = Input.mousePosition;
eventData.position = Input.mousePosition;
//Canvas的GraphicRaycaster组件,只能获取当前GraphicRaycaster下的所有UI
//并且子级中的UI组件RaycastTarget设置为true
GraphicRaycaster graphicRaycaster = GameCtrl.instance.transform.GetComponent<GraphicRaycaster>();
//获取Canvas下的所有UI反馈
graphicRaycaster.Raycast(eventData, list);
foreach(RaycastResult rr in list ) {
Debug.Log( rr.gameObject.name );
}
}
本文介绍了一个在Unity中使用GraphicRaycaster组件进行UI元素鼠标悬停检测的方法。通过创建PointerEventData实例并利用GraphicRaycaster的Raycast方法,可以获取到鼠标下所有的UI反馈,适用于游戏开发和UI交互设计。
918

被折叠的 条评论
为什么被折叠?



