public static void SetExplicitNavigation <T>(IList <T> selectables, Func <T, Selectable> selectableFunction, StratusOrientation orientation) { for (int i = 0; i < selectables.Count; i++) { Selectable selectable = selectableFunction(selectables[i]); Navigation navigation = new Navigation(); navigation.mode = Navigation.Mode.Explicit; if (selectables.ContainsIndex(i - 1)) { switch (orientation) { case StratusOrientation.Horizontal: navigation.selectOnLeft = selectableFunction(selectables[i - 1]); break; case StratusOrientation.Vertical: navigation.selectOnUp = selectableFunction(selectables[i - 1]); break; default: break; } } if (selectables.ContainsIndex(i + 1)) { switch (orientation) { case StratusOrientation.Horizontal: navigation.selectOnRight = selectableFunction(selectables[i + 1]); break; case StratusOrientation.Vertical: navigation.selectOnDown = selectableFunction(selectables[i + 1]); break; default: break; } } selectable.navigation = navigation; } }
//------------------------------------------------------------------------/ // CTOR //------------------------------------------------------------------------/ public StratusMenuBarDrawer(StratusOrientation orientation, params GUILayoutOption[] options) { this.orientation = orientation; switch (this.orientation) { case StratusOrientation.Horizontal: this.guiLayoutOptions = options; break; case StratusOrientation.Vertical: this.guiLayoutOptions = options; break; default: break; } }