using UnityEditor; using Wwise.Wooduan.Components; using Wwise.Wooduan.Tools; namespace Wwise.Wooduan.Editor.Components { [UnityEditor.CanEditMultipleObjects] [UnityEditor.CustomEditor(typeof(AkGameSync))] public class AkGameSyncInspector : UnityEditor.Editor { private AkGameSync _component; private readonly AkUnityEventHandlerInspector _eventHandlerInspector = new AkUnityEventHandlerInspector(); public void OnEnable() { _component = target as AkGameSync; _eventHandlerInspector.Init(serializedObject, "triggerList", "Set On: ", false); } public override void OnInspectorGUI() { serializedObject.Update(); _eventHandlerInspector.OnGUI(); EditorGUILayout.PropertyField(serializedObject.FindProperty("stateData")); EditorGUILayout.PropertyField(serializedObject.FindProperty("switchData")); UnityEditor.EditorGUILayout.LabelField("RTPC", UnityEditor.EditorStyles.boldLabel); using (new UnityEditor.EditorGUILayout.VerticalScope("box")) { EditorGUILayout.PropertyField(serializedObject.FindProperty("RTPCName")); if (_component.binding == RTPCBinding.None) EditorGUILayout.PropertyField(serializedObject.FindProperty("RTPCValue")); EditorGUILayout.PropertyField(serializedObject.FindProperty("isGlobal")); EditorGUILayout.PropertyField(serializedObject.FindProperty("updateTolerance")); if (_component.binding != RTPCBinding.None) EditorGUILayout.PropertyField(serializedObject.FindProperty("updateInterval")); EditorGUILayout.PropertyField(serializedObject.FindProperty("binding")); } serializedObject.ApplyModifiedProperties(); } } }