using UnityEngine; using UnityEngine.EventSystems; namespace DDD { public abstract class BasePopupUi : BaseUi { public abstract InputActionMaps InputActionMaps { get; } protected abstract GameObject GetInitialSelected(); protected override void Update() { base.Update(); var currentSelectedGameObject = EventSystem.current.currentSelectedGameObject; if (!currentSelectedGameObject || currentSelectedGameObject.activeInHierarchy == false) { if (!GetInitialSelected()) return; EventSystem.current.SetSelectedGameObject(GetInitialSelected()); } } public override void Open() { base.Open(); EventSystem.current.SetSelectedGameObject(GetInitialSelected()); } } }