123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- //------------------------------------------------------------
- // Game Framework
- // Copyright © 2013-2021 loyalsoft. All rights reserved.
- // Homepage: http://www.game7000.com/
- // Feedback: http://www.game7000.com/
- //------------------------------------------------------------
- using UnityEditor;
- using UnityGameFramework.Runtime;
- namespace UnityGameFramework.Editor
- {
- [CustomEditor(typeof(UIComponent))]
- internal sealed class UIComponentInspector : GameFrameworkInspector
- {
- private SerializedProperty m_EnableOpenUIFormSuccessEvent = null;
- private SerializedProperty m_EnableOpenUIFormFailureEvent = null;
- private SerializedProperty m_EnableOpenUIFormUpdateEvent = null;
- private SerializedProperty m_EnableOpenUIFormDependencyAssetEvent = null;
- private SerializedProperty m_EnableCloseUIFormCompleteEvent = null;
- private SerializedProperty m_InstanceAutoReleaseInterval = null;
- private SerializedProperty m_InstanceCapacity = null;
- private SerializedProperty m_InstanceExpireTime = null;
- private SerializedProperty m_InstancePriority = null;
- private SerializedProperty m_InstanceRoot = null;
- private SerializedProperty m_UIGroups = null;
- private HelperInfo<UIFormHelperBase> m_UIFormHelperInfo = new HelperInfo<UIFormHelperBase>("UIForm");
- private HelperInfo<UIGroupHelperBase> m_UIGroupHelperInfo = new HelperInfo<UIGroupHelperBase>("UIGroup");
- public override void OnInspectorGUI()
- {
- base.OnInspectorGUI();
- serializedObject.Update();
- UIComponent t = (UIComponent)target;
- EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode);
- {
- EditorGUILayout.PropertyField(m_EnableOpenUIFormSuccessEvent);
- EditorGUILayout.PropertyField(m_EnableOpenUIFormFailureEvent);
- EditorGUILayout.PropertyField(m_EnableOpenUIFormUpdateEvent);
- EditorGUILayout.PropertyField(m_EnableOpenUIFormDependencyAssetEvent);
- EditorGUILayout.PropertyField(m_EnableCloseUIFormCompleteEvent);
- }
- EditorGUI.EndDisabledGroup();
- float instanceAutoReleaseInterval = EditorGUILayout.DelayedFloatField("Instance Auto Release Interval", m_InstanceAutoReleaseInterval.floatValue);
- if (instanceAutoReleaseInterval != m_InstanceAutoReleaseInterval.floatValue)
- {
- if (EditorApplication.isPlaying)
- {
- t.InstanceAutoReleaseInterval = instanceAutoReleaseInterval;
- }
- else
- {
- m_InstanceAutoReleaseInterval.floatValue = instanceAutoReleaseInterval;
- }
- }
- int instanceCapacity = EditorGUILayout.DelayedIntField("Instance Capacity", m_InstanceCapacity.intValue);
- if (instanceCapacity != m_InstanceCapacity.intValue)
- {
- if (EditorApplication.isPlaying)
- {
- t.InstanceCapacity = instanceCapacity;
- }
- else
- {
- m_InstanceCapacity.intValue = instanceCapacity;
- }
- }
- float instanceExpireTime = EditorGUILayout.DelayedFloatField("Instance Expire Time", m_InstanceExpireTime.floatValue);
- if (instanceExpireTime != m_InstanceExpireTime.floatValue)
- {
- if (EditorApplication.isPlaying)
- {
- t.InstanceExpireTime = instanceExpireTime;
- }
- else
- {
- m_InstanceExpireTime.floatValue = instanceExpireTime;
- }
- }
- int instancePriority = EditorGUILayout.DelayedIntField("Instance Priority", m_InstancePriority.intValue);
- if (instancePriority != m_InstancePriority.intValue)
- {
- if (EditorApplication.isPlaying)
- {
- t.InstancePriority = instancePriority;
- }
- else
- {
- m_InstancePriority.intValue = instancePriority;
- }
- }
- EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode);
- {
- EditorGUILayout.PropertyField(m_InstanceRoot);
- m_UIFormHelperInfo.Draw();
- m_UIGroupHelperInfo.Draw();
- EditorGUILayout.PropertyField(m_UIGroups, true);
- }
- EditorGUI.EndDisabledGroup();
- if (EditorApplication.isPlaying && IsPrefabInHierarchy(t.gameObject))
- {
- EditorGUILayout.LabelField("UI Group Count", t.UIGroupCount.ToString());
- }
- serializedObject.ApplyModifiedProperties();
- Repaint();
- }
- protected override void OnCompileComplete()
- {
- base.OnCompileComplete();
- RefreshTypeNames();
- }
- private void OnEnable()
- {
- m_EnableOpenUIFormSuccessEvent = serializedObject.FindProperty("m_EnableOpenUIFormSuccessEvent");
- m_EnableOpenUIFormFailureEvent = serializedObject.FindProperty("m_EnableOpenUIFormFailureEvent");
- m_EnableOpenUIFormUpdateEvent = serializedObject.FindProperty("m_EnableOpenUIFormUpdateEvent");
- m_EnableOpenUIFormDependencyAssetEvent = serializedObject.FindProperty("m_EnableOpenUIFormDependencyAssetEvent");
- m_EnableCloseUIFormCompleteEvent = serializedObject.FindProperty("m_EnableCloseUIFormCompleteEvent");
- m_InstanceAutoReleaseInterval = serializedObject.FindProperty("m_InstanceAutoReleaseInterval");
- m_InstanceCapacity = serializedObject.FindProperty("m_InstanceCapacity");
- m_InstanceExpireTime = serializedObject.FindProperty("m_InstanceExpireTime");
- m_InstancePriority = serializedObject.FindProperty("m_InstancePriority");
- m_InstanceRoot = serializedObject.FindProperty("m_InstanceRoot");
- m_UIGroups = serializedObject.FindProperty("m_UIGroups");
- m_UIFormHelperInfo.Init(serializedObject);
- m_UIGroupHelperInfo.Init(serializedObject);
- RefreshTypeNames();
- }
- private void RefreshTypeNames()
- {
- m_UIFormHelperInfo.Refresh();
- m_UIGroupHelperInfo.Refresh();
- serializedObject.ApplyModifiedProperties();
- }
- }
- }
|