@@ -413,7 +413,7 @@ void EffectSlot(Rect effectRect, AudioMixerSnapshotController snapshot, AudioMix
413413 // Active: Enabled, background for draggable bar
414414 // Focused: Enabled, foreground for draggable bar
415415
416- float level = GetValueForEffect ( effect , p . group , m_Controller , snapshot ) ;
416+ float level = ( effect != null ) ? Mathf . Clamp ( effect . GetValueForMixLevel ( m_Controller , snapshot ) , AudioMixerController . kMinVolume , AudioMixerController . kMaxEffect ) : AudioMixerController . kMinVolume ;
417417 bool showLevel = ( effect != null ) && ( ( effect . IsSend ( ) && effect . sendTarget != null ) || effect . enableWetMix ) ;
418418 if ( evt . type == EventType . Repaint )
419419 {
@@ -497,7 +497,7 @@ string GetEffectSlotName(AudioMixerEffectController effect, bool showLevel, Audi
497497 {
498498 if ( m_ChangingWetMixIndex == m_IndexCounter && showLevel )
499499 {
500- return UnityString . Format ( "{0:F1} dB" , GetValueForEffect ( effect , p . group , m_Controller , snapshot ) ) ;
500+ return UnityString . Format ( "{0:F1} dB" , effect . GetValueForMixLevel ( m_Controller , snapshot ) ) ;
501501 }
502502
503503 if ( effect . IsSend ( ) && effect . sendTarget != null )
@@ -683,14 +683,26 @@ private void EffectSlotDragging(Rect r, AudioMixerSnapshotController snapshot, A
683683 Undo . RecordObject ( m_Controller . TargetSnapshot , "Change effect level" ) ;
684684 if ( effect . IsSend ( ) && m_Controller . CachedSelection . Count > 1 && m_Controller . CachedSelection . Contains ( p . group ) )
685685 {
686- foreach ( var group in m_Controller . CachedSelection )
687- foreach ( var cachedEffect in group . effects )
688- if ( cachedEffect . effectName == effect . effectName && cachedEffect . sendTarget == effect . sendTarget )
689- SetValueForEffect ( cachedEffect , group , m_Controller , snapshot , GetValueForEffect ( cachedEffect , group , m_Controller , snapshot ) + deltaLevel ) ;
686+ List < AudioMixerEffectController > changeEffects = new List < AudioMixerEffectController > ( ) ;
687+ foreach ( var g in m_Controller . CachedSelection )
688+ foreach ( var e in g . effects )
689+ if ( e . effectName == effect . effectName && e . sendTarget == effect . sendTarget )
690+ changeEffects . Add ( e ) ;
691+ foreach ( var e in changeEffects )
692+ if ( ! e . IsSend ( ) || e . sendTarget != null )
693+ e . SetValueForMixLevel (
694+ m_Controller ,
695+ snapshot ,
696+ Mathf . Clamp ( e . GetValueForMixLevel ( m_Controller , snapshot ) + deltaLevel , AudioMixerController . kMinVolume , AudioMixerController . kMaxEffect ) ) ;
690697 }
691698 else
692- SetValueForEffect ( effect , p . group , m_Controller , snapshot , level + deltaLevel ) ;
693-
699+ {
700+ if ( ! effect . IsSend ( ) || effect . sendTarget != null )
701+ effect . SetValueForMixLevel (
702+ m_Controller ,
703+ snapshot ,
704+ Mathf . Clamp ( level + deltaLevel , AudioMixerController . kMinVolume , AudioMixerController . kMaxEffect ) ) ;
705+ }
694706 InspectorWindow . RepaintAllInspectors ( ) ;
695707 }
696708 evt . Use ( ) ;
@@ -1722,25 +1734,5 @@ Rect GetContentRect(List<AudioMixerGroupController> sortedGroups, bool isShowing
17221734 float maxWidth = channelStripsOffset . x * 2 + ( channelStripBaseWidth + channelStripSpacing ) * sortedGroups . Count + ( isShowingReferencedGroups ? spaceBetweenMainGroupsAndReferenced : 0f ) ;
17231735 return new Rect ( 0 , 0 , maxWidth , maxHeight ) ;
17241736 }
1725-
1726- static float GetValueForEffect ( AudioMixerEffectController effect , AudioMixerGroupController group , AudioMixerController controller , AudioMixerSnapshotController snapshot )
1727- {
1728- float level = AudioMixerController . kMinVolume ;
1729- if ( effect == null )
1730- return level ;
1731- level = ( effect . IsSend ( ) && effect . sendTarget != null ) ? group . GetValueForSend ( controller , snapshot ) : effect . GetValueForMixLevel ( controller , snapshot ) ;
1732- return Mathf . Clamp ( level , AudioMixerController . kMinVolume , AudioMixerController . kMaxEffect ) ;
1733- }
1734-
1735- static void SetValueForEffect ( AudioMixerEffectController effect , AudioMixerGroupController group , AudioMixerController controller , AudioMixerSnapshotController snapshot , float level )
1736- {
1737- if ( effect == null )
1738- return ;
1739- level = Mathf . Clamp ( level , AudioMixerController . kMinVolume , AudioMixerController . kMaxEffect ) ;
1740- if ( effect . IsSend ( ) && effect . sendTarget != null )
1741- group . SetValueForSend ( controller , snapshot , level ) ;
1742- else
1743- effect . SetValueForMixLevel ( controller , snapshot , level ) ;
1744- }
17451737 }
17461738}
0 commit comments