44 lines
1.4 KiB
C#
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);
|
|
}
|
|
}
|
|
} |