@@ -298,6 +298,7 @@ void SubscribeToGUICallbacksAndEvents()
298298 SubscribeToClipListCallbacksAndEvents ( ) ;
299299 SubscribeToAutomaticTriggerCallbacksAndEvents ( ) ;
300300 SubscribeToTooltipCallbacksAndEvents ( ) ;
301+ SubscribeToAudioMasterMuteCallbacksAndEvents ( ) ;
301302 m_IsSubscribedToGUICallbacksAndEvents = true ;
302303 }
303304
@@ -314,6 +315,7 @@ void UnsubscribeFromGUICallbacksAndEvents()
314315 UnsubscribeFromClipListCallbacksAndEvents ( ) ;
315316 UnsubscribeFromAutomaticTriggerCallbacksAndEvents ( ) ;
316317 UnsubscribeFromTooltipCallbacksAndEvents ( ) ;
318+ UnsubscribeFromAudioMasterMuteCallbacksAndEvents ( ) ;
317319 m_IsSubscribedToGUICallbacksAndEvents = false ;
318320 }
319321
@@ -425,8 +427,8 @@ void UpdateTransportButtonStates()
425427 {
426428 var editorIsPaused = EditorApplication . isPaused ;
427429
428- m_PlayStopButton ? . SetEnabled ( State . IsReadyToPlay ( ) && ! editorIsPaused ) ;
429- m_SkipButton ? . SetEnabled ( State . IsPlayingOrPaused ( ) && State . AudioContainer . triggerMode == AudioRandomContainerTriggerMode . Automatic && ! editorIsPaused ) ;
430+ m_PlayStopButton ? . SetEnabled ( State . IsReadyToPlay ( ) && ! editorIsPaused && ! EditorUtility . audioMasterMute ) ;
431+ m_SkipButton ? . SetEnabled ( State . IsPlayingOrPaused ( ) && State . AudioContainer . triggerMode == AudioRandomContainerTriggerMode . Automatic && ! editorIsPaused && ! EditorUtility . audioMasterMute ) ;
430432
431433 var image =
432434 State . IsPlayingOrPaused ( )
@@ -1126,27 +1128,44 @@ void SubscribeToTooltipCallbacksAndEvents()
11261128 rootVisualElement . RegisterCallback < TooltipEvent > ( ShowTooltip , TrickleDown . TrickleDown ) ;
11271129 }
11281130
1131+ void SubscribeToAudioMasterMuteCallbacksAndEvents ( )
1132+ {
1133+ EditorUtility . onAudioMasterMuteWasUpdated += OnAudioMasterMuteChanged ;
1134+ }
1135+
11291136 void UnsubscribeFromTooltipCallbacksAndEvents ( )
11301137 {
11311138 rootVisualElement . UnregisterCallback < TooltipEvent > ( ShowTooltip ) ;
11321139 }
11331140
1141+ void UnsubscribeFromAudioMasterMuteCallbacksAndEvents ( )
1142+ {
1143+ EditorUtility . onAudioMasterMuteWasUpdated -= OnAudioMasterMuteChanged ;
1144+ }
1145+
11341146 void ShowTooltip ( TooltipEvent evt )
11351147 {
11361148 var name = ( evt . target as VisualElement ) . name ;
11371149
11381150 if ( name == "play-button" || name == "play-button-image" )
11391151 {
1140- var mode = State . IsPlayingOrPaused ( ) ? "Stop" : "Play" ;
1141- var shortcut = ShortcutManager . instance . GetShortcutBinding ( "Audio/Play-stop Audio Random Container" ) ;
1142-
1143- if ( shortcut . Equals ( ShortcutBinding . empty ) )
1152+ if ( EditorUtility . audioMasterMute )
11441153 {
1145- evt . tooltip = mode ;
1154+ evt . tooltip = "Previewing is disabled when the game view is muted. To enable previewing unmute the game view." ;
11461155 }
11471156 else
11481157 {
1149- evt . tooltip = mode + " (" + shortcut + ")" ;
1158+ var mode = State . IsPlayingOrPaused ( ) ? "Stop" : "Play" ;
1159+ var shortcut = ShortcutManager . instance . GetShortcutBinding ( "Audio/Play-stop Audio Random Container" ) ;
1160+
1161+ if ( shortcut . Equals ( ShortcutBinding . empty ) )
1162+ {
1163+ evt . tooltip = mode ;
1164+ }
1165+ else
1166+ {
1167+ evt . tooltip = mode + " (" + shortcut + ")" ;
1168+ }
11501169 }
11511170
11521171 evt . rect = ( evt . target as VisualElement ) . worldBound ;
@@ -1267,6 +1286,17 @@ void OnCountRandomizationButtonClicked()
12671286 State . AudioContainer . loopCountRandomizationEnabled = ! State . AudioContainer . loopCountRandomizationEnabled ;
12681287 }
12691288
1289+ void OnAudioMasterMuteChanged ( bool isMuted )
1290+ {
1291+ if ( isMuted && State . IsPlayingOrPaused ( ) )
1292+ {
1293+ State . Stop ( ) ;
1294+ ClearClipFieldProgressBars ( ) ;
1295+ }
1296+
1297+ UpdateTransportButtonStates ( ) ;
1298+ }
1299+
12701300 #endregion
12711301
12721302 #region GlobalEditorCallbackHandlers
@@ -1425,7 +1455,7 @@ static void Preview(ShortcutArguments args)
14251455 {
14261456 var audioContainerWindow = focusedWindow as AudioContainerWindow ;
14271457
1428- if ( audioContainerWindow != null && audioContainerWindow . IsDisplayingTarget ( ) )
1458+ if ( audioContainerWindow != null && audioContainerWindow . IsDisplayingTarget ( ) && ! EditorUtility . audioMasterMute )
14291459 {
14301460 audioContainerWindow . OnPlayStopButtonClicked ( ) ;
14311461 }
0 commit comments