public void DrawInspector() { EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("Default menu settings", EditorStyles.boldLabel); GUILayout.Space(VERTICAL_OFFSET); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Orientation style", GUILayout.Width(TEXT_WIDTH)); _menuOrientation = (EMenuOrientationStyle)EditorGUILayout.EnumPopup(_menuOrientation); EditorGUILayout.EndHorizontal(); if (_menuOrientation == EMenuOrientationStyle.Both) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Real orientation", GUILayout.Width(TEXT_WIDTH)); _realOrientation = (ERealOrientation)EditorGUILayout.EnumPopup(_realOrientation); EditorGUILayout.EndHorizontal(); } else { _realOrientation = _menuOrientation == EMenuOrientationStyle.Horizontal ? ERealOrientation.Horizontal : ERealOrientation.Vertical; } EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Attach uGUI", GUILayout.Width(TEXT_WIDTH)); _attachUI = EditorGUILayout.Toggle(_attachUI); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); }
private static void DrawOrientationBlock(Menu menu, ERealOrientation orientation) { EditorGUILayout.BeginHorizontal(); GameObject panel = orientation == ERealOrientation.Horizontal ? menu.HorizontalPanel : menu.VerticalPanel; MenuView view = orientation == ERealOrientation.Horizontal ? menu.HorizontalView : menu.VerticalView; if (panel == null) { panel = AGameObjectTool.CreateGameObject(orientation == ERealOrientation.Horizontal ? "Horizontal Panel" : "Vertical Panel", menu.gameObject); } EditorGUILayout.LabelField(orientation == ERealOrientation.Horizontal ? "Horizontal:" : "Vertical:", GUILayout.Width(SMALL_WIDTH)); if (view == null) { view = panel.GetComponent <MenuView>(); } if (view == null) { panel = (GameObject)EditorGUILayout.ObjectField(panel, typeof(GameObject), true); } else { view = (MenuView)EditorGUILayout.ObjectField(view, typeof(MenuView), true); } if (orientation == ERealOrientation.Horizontal) { menu.HorizontalPanel = panel; menu.HorizontalView = view; } else { menu.VerticalPanel = panel; menu.VerticalView = view; } if (menu.OrientationStyle != EMenuOrientationStyle.Both) { GameObject unusedPanel = orientation == ERealOrientation.Horizontal ? menu.VerticalPanel : menu.HorizontalPanel; if (unusedPanel != null) { DestroyImmediate(unusedPanel); } } EditorGUILayout.EndHorizontal(); }
void LateUpdate() { if (_orientationStyle == EMenuOrientationStyle.Both && _currentOrientation != ScreenOrientation) { MenuView activeView = (_currentOrientation == ERealOrientation.Horizontal) ? _horizontalView : _verticalView; MenuView passiveView = (_currentOrientation == ERealOrientation.Horizontal) ? _verticalView : _horizontalView; if (activeView != null) { activeView.OnChangeScreenOrientation(MenuView.EMenuViewState.HideView); } _currentOrientation = ScreenOrientation; if (passiveView != null) { passiveView.OnChangeScreenOrientation(MenuView.EMenuViewState.ShowView); } RefreshViewPanels(); } }