Files
2024-11-20 15:21:28 +01:00

44 lines
1.4 KiB
C#

using System.Collections;
using UnityEngine;
using UnityEngine.EventSystems;
namespace Invector.vItemManager
{
public class vSetFirstSelectable : MonoBehaviour
{
public GameObject firstSelectable;
[Tooltip("True: Execute Selection Handler Event - False: Execute Pointer Enter Handler Event")]
public bool callSelectHandle = true;
public void ApplyFirstSelectable(GameObject firstSelectable)
{
this.firstSelectable = firstSelectable;
}
void OnEnable()
{
StartCoroutine(SetSelectableHandle(firstSelectable));
}
IEnumerator SetSelectableHandle(GameObject target)
{
if (this.enabled)
{
yield return new WaitForEndOfFrame();
SetSelectable(target);
}
}
void SetSelectable(GameObject target)
{
var pointer = new PointerEventData(EventSystem.current);
ExecuteEvents.Execute(EventSystem.current.currentSelectedGameObject, pointer, ExecuteEvents.pointerExitHandler);
EventSystem.current.SetSelectedGameObject(target, new BaseEventData(EventSystem.current));
if(callSelectHandle)
ExecuteEvents.Execute(target, pointer, ExecuteEvents.selectHandler);
else
ExecuteEvents.Execute(target, pointer, ExecuteEvents.pointerEnterHandler);
}
}
}