예제 #1
0
 /// <summary>
 /// 只允许UIManager调用,关闭面板
 /// </summary>
 public virtual void Close()
 {
     this.gameObject.SetActive(false);
     _viewShowStatus = ViewShowStatus.Hide;
     _viewOpenStatus = ViewOpenStatus.Close;
     CloseCallback();
 }
예제 #2
0
        public override void OnInspectorGUI()
        {
            //获取脚本对象
            BaseView script = target as BaseView;

            // 面板打开状态
            ViewOpenStatus viewStatus = script.ViewOpenStatus;

            switch (viewStatus)
            {
            case ViewOpenStatus.Close:
                EditorGUILayout.LabelField("面板打开状态:关闭");
                break;

            case ViewOpenStatus.Open:
                EditorGUILayout.LabelField("面板打开状态:打开");

                // 面板显示状态
                ViewShowStatus viewShowStatus = script.ViewShowStatus;
                switch (viewShowStatus)
                {
                case ViewShowStatus.Show:
                    EditorGUILayout.LabelField("面板显示状态:显示");
                    break;

                case ViewShowStatus.Hide:
                    EditorGUILayout.LabelField("面板显示状态:隐藏");
                    break;

                default:
                    break;
                }
                break;

            default:
                break;
            }

            script.uiType.uiViewType = (UIViewType)EditorGUILayout.EnumPopup("面板类型:", script.uiType.uiViewType);
            if (script.uiType.uiViewType == UIViewType.Normal)
            {
                script.uiType.uiViewShowMode   = (UIViewShowMode)EditorGUILayout.EnumPopup("面板显示类型:", script.uiType.uiViewShowMode);
                script.uiType.uiViewLucenyType = (UIViewLucenyType)EditorGUILayout.EnumPopup("面板背景类型:", script.uiType.uiViewLucenyType);
            }

            if (script.uiType.uiViewType != UIViewType.PopUp)
            {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("释放秒数:");
                script.disposeTime = EditorGUILayout.FloatField(script.disposeTime);
                EditorGUILayout.EndHorizontal();
            }

            Undo.RecordObject(target, GetType().ToString());  // 用了这个才能让EditorGUILayout.EnumPopup更改触发保存
            if (GUI.changed)
            {
                EditorUtility.SetDirty(target);
            }
        }
예제 #3
0
 /// <summary>
 /// 只允许UIManager调用,隐藏面板
 /// </summary>
 public virtual void Hide()
 {
     this.gameObject.SetActive(false);
     _viewShowStatus = ViewShowStatus.Hide;
     HideCallback();
 }
예제 #4
0
 /// <summary>
 /// 只允许UIManager调用,显示面板
 /// </summary>
 public virtual void Display()
 {
     this.gameObject.SetActive(true);
     _viewShowStatus = ViewShowStatus.Show;
     DisplayCallback();
 }