private void Audio3DGUI()
{
EditorGUILayout.Slider(this.m_DopplerLevel, 0f, 5f, ms_Styles.dopplerLevelLabel, new GUILayoutOption[0]);
EditorGUI.BeginChangeCheck();
AnimProp(ms_Styles.spreadLabel, this.m_AudioCurves[2].curveProp, 0f, 360f, true);
if (this.m_RolloffMode.hasMultipleDifferentValues || ((this.m_RolloffMode.enumValueIndex == 2) && this.m_AudioCurves[0].curveProp.hasMultipleDifferentValues))
{
EditorGUILayout.TargetChoiceField(this.m_AudioCurves[0].curveProp, ms_Styles.rolloffLabel, new TargetChoiceHandler.TargetChoiceMenuFunction(AudioSourceInspector.SetRolloffToTarget), new GUILayoutOption[0]);
}
else
{
EditorGUILayout.PropertyField(this.m_RolloffMode, ms_Styles.rolloffLabel, new GUILayoutOption[0]);
if (this.m_RolloffMode.enumValueIndex != 2)
{
EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(this.m_MinDistance, new GUILayoutOption[0]);
if (EditorGUI.EndChangeCheck())
{
this.m_MinDistance.floatValue = Mathf.Clamp(this.m_MinDistance.floatValue, 0f, this.m_MaxDistance.floatValue / 1.01f);
}
}
else
{
EditorGUI.BeginDisabledGroup(true);
EditorGUILayout.LabelField(this.m_MinDistance.displayName, ms_Styles.controlledByCurveLabel, new GUILayoutOption[0]);
EditorGUI.EndDisabledGroup();
}
}
EditorGUI.BeginChangeCheck();
EditorGUILayout.PropertyField(this.m_MaxDistance, new GUILayoutOption[0]);
if (EditorGUI.EndChangeCheck())
{
this.m_MaxDistance.floatValue = Mathf.Min(Mathf.Max(Mathf.Max(this.m_MaxDistance.floatValue, 0.01f), this.m_MinDistance.floatValue * 1.01f), 1000000f);
}
if (EditorGUI.EndChangeCheck())
{
this.m_RefreshCurveEditor = true;
}
Rect aspectRect = GUILayoutUtility.GetAspectRect(1.333f, GUI.skin.textField);
aspectRect.xMin += EditorGUI.indent;
if ((Event.current.type != EventType.Layout) && (Event.current.type != EventType.Used))
{
this.m_CurveEditor.rect = new Rect(aspectRect.x, aspectRect.y, aspectRect.width, aspectRect.height);
}
this.UpdateWrappersAndLegend();
GUI.Label(this.m_CurveEditor.drawRect, GUIContent.none, "TextField");
this.m_CurveEditor.hRangeLocked = Event.current.shift;
this.m_CurveEditor.vRangeLocked = EditorGUI.actionKey;
this.m_CurveEditor.OnGUI();
if (base.targets.Length == 1)
{
AudioSource target = (AudioSource) this.target;
AudioListener listener = (AudioListener) UnityEngine.Object.FindObjectOfType(typeof(AudioListener));
if (listener != null)
{
Vector3 vector = AudioUtil.GetListenerPos() - target.transform.position;
float magnitude = vector.magnitude;
this.DrawLabel("Listener", magnitude, aspectRect);
}
}
this.DrawLegend();
foreach (AudioCurveWrapper wrapper in this.m_AudioCurves)
{
if ((this.m_CurveEditor.getCurveWrapperById(wrapper.id) != null) && this.m_CurveEditor.getCurveWrapperById(wrapper.id).changed)
{
AnimationCurve curve = this.m_CurveEditor.getCurveWrapperById(wrapper.id).curve;
if (curve.length > 0)
{
wrapper.curveProp.animationCurveValue = curve;
this.m_CurveEditor.getCurveWrapperById(wrapper.id).changed = false;
if (wrapper.type == AudioCurveType.Volume)
{
this.m_RolloffMode.enumValueIndex = 2;
}
}
}
}
}