NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/GameWrapper/RaycastDetect.cs

74 lines
2.2 KiB
C#
Raw Normal View History

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;
2025-04-28 15:42:24 +08:00
/// <summary>
/// <20><><EFBFBD>⴩͸<E2B4A9><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>UI<55>·<EFBFBD><C2B7>İ<EFBFBD>ť
/// </summary>
public class RaycastDetect : MonoBehaviour
{
public UnityAction ClickAction;
public UnityAction DefaultAction;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
PointerEventData pointerData = new PointerEventData(EventSystem.current)
{
position = Input.mousePosition
};
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>UI<55><49><EFBFBD><EFBFBD>
var results = new System.Collections.Generic.List<RaycastResult>();
EventSystem.current.RaycastAll(pointerData, results);
if (results.Count > 0)
{
GameObject clickedObject = results[0].gameObject;
if (clickedObject != this.gameObject)
{
//<2F>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>UI
return;
}
foreach (var result in results)
{
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>İ<EFBFBD>ť
if (result.gameObject.GetComponent<Button>() != null)
{
DefaultAction?.Invoke();
result.gameObject.GetComponent<Button>().OnPointerClick(pointerData);
return;
}
}
ClickAction?.Invoke();
//GameObject clickedObject = results[0].gameObject;
//if (clickedObject == mainButton.gameObject)
//{
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>水ť
// OnMainButtonClick();
//}
//else if (clickedObject.transform.IsChildOf(sidebar.transform))
//{
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD>¼<EFBFBD>
//}
//else
//{
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿǽ<C7B7><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// HideSidebar();
//}
}
else
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿǽ<C7B7><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//HideSidebar();
}
}
}
}