public override void OnInspectorGUI() { base.serializedObject.Update(); bool flag = (this.m_AddSpatializerExtension && !this.m_AddSpatializerExtensionMixedValues) || !base.serializedObject.isEditingMultipleObjects; if (AudioExtensionManager.IsListenerSpatializerExtensionRegistered() && flag) { EditorGUI.showMixedValue = this.m_AddSpatializerExtensionMixedValues; bool flag2 = EditorGUILayout.Toggle(this.addSpatializerExtensionLabel, this.m_AddSpatializerExtension, new GUILayoutOption[0]); EditorGUI.showMixedValue = false; bool flag3 = false; if (this.m_AddSpatializerExtension != flag2) { this.m_AddSpatializerExtension = flag2; if (this.m_AddSpatializerExtension) { this.CreateExtensionEditors(); if (this.m_SpatializerEditor != null) { flag3 = this.m_SpatializerEditor.FindAudioExtensionProperties(base.serializedObject); } } else { this.ClearExtensionProperties(); this.DestroyExtensionEditors(); flag3 = false; } } else if (this.m_SpatializerEditor != null) { flag3 = this.m_SpatializerEditor.FindAudioExtensionProperties(base.serializedObject); if (!flag3) { this.m_AddSpatializerExtension = false; this.ClearExtensionProperties(); this.DestroyExtensionEditors(); } } if (this.m_SpatializerEditor != null && flag3) { EditorGUI.indentLevel++; this.m_SpatializerEditor.OnAudioListenerGUI(); EditorGUI.indentLevel--; for (int i = 0; i < base.targets.Length; i++) { AudioListener audioListener = base.targets[i] as AudioListener; if (audioListener != null) { AudioListenerExtension spatializerExtension = AudioExtensionManager.GetSpatializerExtension(audioListener); if (spatializerExtension != null) { string name = AudioExtensionManager.GetListenerSpatializerExtensionType().Name; for (int j = 0; j < this.m_SpatializerEditor.GetNumExtensionProperties(); j++) { PropertyName extensionPropertyName = this.m_SpatializerEditor.GetExtensionPropertyName(j); float propertyValue = 0f; if (audioListener.ReadExtensionProperty(name, extensionPropertyName, ref propertyValue)) { spatializerExtension.WriteExtensionProperty(extensionPropertyName, propertyValue); } } } } } } } base.serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { serializedObject.Update(); bool allowExtensionEditing = (m_AddSpatializerExtension && !m_AddSpatializerExtensionMixedValues) || !serializedObject.isEditingMultipleObjects; if (AudioExtensionManager.IsListenerSpatializerExtensionRegistered() && allowExtensionEditing) { EditorGUI.showMixedValue = m_AddSpatializerExtensionMixedValues; bool addSpatializerExtensionNew = EditorGUILayout.Toggle(addSpatializerExtensionLabel, m_AddSpatializerExtension); EditorGUI.showMixedValue = false; bool showExtensionProperties = false; if (m_AddSpatializerExtension != addSpatializerExtensionNew) { m_AddSpatializerExtension = addSpatializerExtensionNew; if (m_AddSpatializerExtension) { CreateExtensionEditors(); if (m_SpatializerEditor != null) { showExtensionProperties = m_SpatializerEditor.FindAudioExtensionProperties(serializedObject); } } else { ClearExtensionProperties(); DestroyExtensionEditors(); showExtensionProperties = false; } } else if (m_SpatializerEditor != null) { showExtensionProperties = m_SpatializerEditor.FindAudioExtensionProperties(serializedObject); if (!showExtensionProperties) { m_AddSpatializerExtension = false; ClearExtensionProperties(); DestroyExtensionEditors(); } } if ((m_SpatializerEditor != null) && showExtensionProperties) { EditorGUI.indentLevel++; m_SpatializerEditor.OnAudioListenerGUI(); EditorGUI.indentLevel--; // Update AudioSourceExtension properties, if we are currently playing in Editor. for (int i = 0; i < targets.Length; i++) { AudioListener listener = targets[i] as AudioListener; if (listener != null) { AudioListenerExtension extension = AudioExtensionManager.GetSpatializerExtension(listener); if (extension != null) { string extensionName = AudioExtensionManager.GetListenerSpatializerExtensionType().Name; for (int j = 0; j < m_SpatializerEditor.GetNumExtensionProperties(); j++) { PropertyName propertyName = m_SpatializerEditor.GetExtensionPropertyName(j); float value = 0.0f; if (listener.ReadExtensionProperty(extensionName, propertyName, ref value)) { extension.WriteExtensionProperty(propertyName, value); } } } } } } } serializedObject.ApplyModifiedProperties(); }