/// <summary> /// 只允许UIManager调用,关闭面板 /// </summary> public virtual void Close() { this.gameObject.SetActive(false); _viewShowStatus = ViewShowStatus.Hide; _viewOpenStatus = ViewOpenStatus.Close; CloseCallback(); }
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); } }
/// <summary> /// 只允许UIManager调用,隐藏面板 /// </summary> public virtual void Hide() { this.gameObject.SetActive(false); _viewShowStatus = ViewShowStatus.Hide; HideCallback(); }
/// <summary> /// 只允许UIManager调用,显示面板 /// </summary> public virtual void Display() { this.gameObject.SetActive(true); _viewShowStatus = ViewShowStatus.Show; DisplayCallback(); }