void selectNext(bool right) { float x = right ? float.MaxValue : float.MinValue; float start = m_selected != null ? m_selected.transform.position.x : right ? float.MinValue : float.MaxValue; SelectableLogic best = m_selected; foreach (var selectable in m_selectables) { var sX = selectable.transform.position.x; if (right && sX > start && sX < x) { x = sX; best = selectable; } if (!right && sX < start && sX > x) { x = sX; best = selectable; } } if (m_selected != null) { m_selected.deselect(); } m_selected = best; if (m_selected != null) { m_selected.select(); } }
public static void exit(SelectableLogic selectable) { if (m_selected == selectable) { m_selected = null; } }
public static void enter(SelectableLogic selectable) { if (m_selected != null) { m_selected.deselect(); } m_selected = selectable; }
public static void remove(SelectableLogic selectable) { m_selectables.Remove(selectable); }
public static void add(SelectableLogic selectable) { m_selectables.Add(selectable); }