Пример #1
0
        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();
        }
Пример #2
0
        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();
        }
Пример #3
0
        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();
            }
        }