86 lines
2.2 KiB
C#
86 lines
2.2 KiB
C#
using System;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace AlicizaX.UI.Extension
|
|
{
|
|
[Serializable]
|
|
public struct UXNavigation : IEquatable<UXNavigation>
|
|
{
|
|
[Flags]
|
|
public enum Mode
|
|
{
|
|
None = 0,
|
|
Horizontal = 1,
|
|
Vertical = 2,
|
|
Automatic = 3,
|
|
Explicit = 4,
|
|
}
|
|
|
|
[SerializeField] private Mode m_Mode;
|
|
|
|
[HideInInspector] [SerializeField] private bool m_WrapAround;
|
|
|
|
[HideInInspector] [SerializeField] private UXSelectable m_SelectOnUp;
|
|
[HideInInspector] [SerializeField] private UXSelectable m_SelectOnDown;
|
|
[HideInInspector] [SerializeField] private UXSelectable m_SelectOnLeft;
|
|
[HideInInspector] [SerializeField] private UXSelectable m_SelectOnRight;
|
|
|
|
public Mode mode
|
|
{
|
|
get { return m_Mode; }
|
|
set { m_Mode = value; }
|
|
}
|
|
|
|
public bool wrapAround
|
|
{
|
|
get { return m_WrapAround; }
|
|
set { m_WrapAround = value; }
|
|
}
|
|
|
|
public UXSelectable selectOnUp
|
|
{
|
|
get { return m_SelectOnUp; }
|
|
set { m_SelectOnUp = value; }
|
|
}
|
|
|
|
public UXSelectable selectOnDown
|
|
{
|
|
get { return m_SelectOnDown; }
|
|
set { m_SelectOnDown = value; }
|
|
}
|
|
|
|
public UXSelectable selectOnLeft
|
|
{
|
|
get { return m_SelectOnLeft; }
|
|
set { m_SelectOnLeft = value; }
|
|
}
|
|
|
|
public UXSelectable selectOnRight
|
|
{
|
|
get { return m_SelectOnRight; }
|
|
set { m_SelectOnRight = value; }
|
|
}
|
|
|
|
static public UXNavigation defaultNavigation
|
|
{
|
|
get
|
|
{
|
|
var defaultNav = new UXNavigation();
|
|
defaultNav.m_Mode = Mode.Automatic;
|
|
defaultNav.m_WrapAround = false;
|
|
return defaultNav;
|
|
}
|
|
}
|
|
|
|
public bool Equals(UXNavigation other)
|
|
{
|
|
return mode == other.mode &&
|
|
selectOnUp == other.selectOnUp &&
|
|
selectOnDown == other.selectOnDown &&
|
|
selectOnLeft == other.selectOnLeft &&
|
|
selectOnRight == other.selectOnRight;
|
|
}
|
|
}
|
|
}
|