update
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user