diff --git a/Runtime/UXComponent/Selectable/UXSelectable.cs b/Runtime/UXComponent/Selectable/UXSelectable.cs index 94fa910..5e70536 100644 --- a/Runtime/UXComponent/Selectable/UXSelectable.cs +++ b/Runtime/UXComponent/Selectable/UXSelectable.cs @@ -453,7 +453,9 @@ namespace UnityEngine.UI public virtual UXSelectable FindSelectableOnLeft() { if (m_Navigation.mode == UXNavigation.Mode.Explicit) - return m_Navigation.selectOnLeft; + if (m_Navigation.selectOnLeft.IsInteractable() && m_Navigation.mode != UXNavigation.Mode.None) + return m_Navigation.selectOnLeft; + if ((m_Navigation.mode & UXNavigation.Mode.Horizontal) != 0) return FindSelectable(transform.rotation * Vector3.left); return null; @@ -462,7 +464,8 @@ namespace UnityEngine.UI public virtual UXSelectable FindSelectableOnRight() { if (m_Navigation.mode == UXNavigation.Mode.Explicit) - return m_Navigation.selectOnRight; + if (m_Navigation.selectOnRight.IsInteractable() && m_Navigation.mode != UXNavigation.Mode.None) + return m_Navigation.selectOnRight; if ((m_Navigation.mode & UXNavigation.Mode.Horizontal) != 0) return FindSelectable(transform.rotation * Vector3.right); return null; @@ -471,7 +474,8 @@ namespace UnityEngine.UI public virtual UXSelectable FindSelectableOnUp() { if (m_Navigation.mode == UXNavigation.Mode.Explicit) - return m_Navigation.selectOnUp; + if (m_Navigation.selectOnUp.IsInteractable() && m_Navigation.mode != UXNavigation.Mode.None) + return m_Navigation.selectOnUp; if ((m_Navigation.mode & UXNavigation.Mode.Vertical) != 0) return FindSelectable(transform.rotation * Vector3.up); return null; @@ -480,7 +484,8 @@ namespace UnityEngine.UI public virtual UXSelectable FindSelectableOnDown() { if (m_Navigation.mode == UXNavigation.Mode.Explicit) - return m_Navigation.selectOnDown; + if (m_Navigation.selectOnDown.IsInteractable() && m_Navigation.mode != UXNavigation.Mode.None) + return m_Navigation.selectOnDown; if ((m_Navigation.mode & UXNavigation.Mode.Vertical) != 0) return FindSelectable(transform.rotation * Vector3.down); return null;