From e81879959e0d299b20d81e72728b931373188bb2 Mon Sep 17 00:00:00 2001 From: journaliciouz Date: Thu, 30 Oct 2025 14:17:47 +0100 Subject: [PATCH] Properly queue critical VO clips --- Assets/Prefabs/Puzzles/AnneLiseBush.prefab | 37 ++- Assets/Scenes/Levels/Quarry.unity | 317 ++++++------------- Assets/Scripts/Dialogue/DialogueComponent.cs | 2 +- Assets/Scripts/Sound/AppleAudioSource.cs | 17 +- Assets/Scripts/Sound/AudioManager.cs | 102 ++++-- Assets/Scripts/Sound/BushAudioController.cs | 18 +- Assets/Scripts/Sound/LevelAudioObject.cs | 2 +- docs/audiomanager_readme.md | 44 +++ docs/media/audiomanager_component.png | Bin 0 -> 24855 bytes docs/media/audiomixer.png | Bin 0 -> 45748 bytes 10 files changed, 280 insertions(+), 259 deletions(-) create mode 100644 docs/audiomanager_readme.md create mode 100644 docs/media/audiomanager_component.png create mode 100644 docs/media/audiomixer.png diff --git a/Assets/Prefabs/Puzzles/AnneLiseBush.prefab b/Assets/Prefabs/Puzzles/AnneLiseBush.prefab index 7f47ff63..ce823f8e 100644 --- a/Assets/Prefabs/Puzzles/AnneLiseBush.prefab +++ b/Assets/Prefabs/Puzzles/AnneLiseBush.prefab @@ -651,6 +651,7 @@ GameObject: - component: {fileID: 578146208477020881} - component: {fileID: 1193493154550576580} - component: {fileID: 7652960462502122104} + - component: {fileID: 989520896849684110} m_Layer: 0 m_Name: AnneLiseBush m_TagString: Untagged @@ -747,10 +748,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: edc43a9f07fedb44abb68b06c71d17ea, type: 3} m_Name: m_EditorClassIdentifier: '::' - VOPlayer: {fileID: 7652960462502122104} - SFXPlayer: {fileID: 5129281429389775297} + VOPlayer: {fileID: 989520896849684110} + SFXPlayer: {fileID: 2614810362455218124} reactionClipToPlay: {fileID: 0} flashSFXClipToPlay: {fileID: 8300000, guid: 2ac461fcc3f7a014ca716a4f231be004, type: 3} + birdGameStats: {fileID: 0} birdCounterClip: - {fileID: 8300000, guid: 60d02b75b267d5949a36f04bb5dfe409, type: 3} - {fileID: 8300000, guid: 86dc2e8f9a1cf7440adccad824209334, type: 3} @@ -853,6 +855,21 @@ AudioSource: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 +--- !u!114 &989520896849684110 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5943355783477523754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 242e6101be071f44fb14c3c12641c833, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::AppleAudioSource + audioSourceType: 0 + audioSource: {fileID: 0} + priority: 0 --- !u!1 &6948354193133336628 GameObject: m_ObjectHideFlags: 0 @@ -863,6 +880,7 @@ GameObject: m_Component: - component: {fileID: 6330838396794415978} - component: {fileID: 5129281429389775297} + - component: {fileID: 2614810362455218124} m_Layer: 0 m_Name: SFXAudio m_TagString: Untagged @@ -982,6 +1000,21 @@ AudioSource: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 +--- !u!114 &2614810362455218124 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6948354193133336628} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 242e6101be071f44fb14c3c12641c833, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::AppleAudioSource + audioSourceType: 3 + audioSource: {fileID: 0} + priority: 0 --- !u!1 &7019503702609181254 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/Levels/Quarry.unity b/Assets/Scenes/Levels/Quarry.unity index c9eb0c40..efe0062a 100644 --- a/Assets/Scenes/Levels/Quarry.unity +++ b/Assets/Scenes/Levels/Quarry.unity @@ -917,6 +917,22 @@ AudioSource: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 +--- !u!114 &21238932 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 21238920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 242e6101be071f44fb14c3c12641c833, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::AppleAudioSource + audioSourceType: 0 + audioSource: {fileID: 0} + clipPriority: 0 + sourcePriority: 0 --- !u!1001 &28205340 PrefabInstance: m_ObjectHideFlags: 0 @@ -3233,7 +3249,7 @@ MonoBehaviour: m_CorrespondingSourceObject: {fileID: 578146208477020881, guid: 9b2926886934b554f9a1727331d34787, type: 3} m_PrefabInstance: {fileID: 661675797} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1638507537} + m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 603ecc4a6ab6bb84c8cb9773fa310b69, type: 3} @@ -441161,9 +441177,6 @@ PrefabInstance: insertIndex: 0 addedObject: {fileID: 1982530897} m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 5943355783477523754, guid: 9b2926886934b554f9a1727331d34787, type: 3} - insertIndex: -1 - addedObject: {fileID: 1638507543} - targetCorrespondingSourceObject: {fileID: 1011363502278351410, guid: 9b2926886934b554f9a1727331d34787, type: 3} insertIndex: -1 addedObject: {fileID: 1872179205} @@ -441173,6 +441186,9 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 1011363502278351410, guid: 9b2926886934b554f9a1727331d34787, type: 3} insertIndex: -1 addedObject: {fileID: 1872179203} + - targetCorrespondingSourceObject: {fileID: 1011363502278351410, guid: 9b2926886934b554f9a1727331d34787, type: 3} + insertIndex: -1 + addedObject: {fileID: 1872179206} m_SourcePrefab: {fileID: 100100000, guid: 9b2926886934b554f9a1727331d34787, type: 3} --- !u!1001 &666234666 PrefabInstance: @@ -444156,11 +444172,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 6638967295122936466, guid: f4ac8282240dd544e9a92e7635486fd1, type: 3} m_PrefabInstance: {fileID: 779867978} m_PrefabAsset: {fileID: 0} ---- !u!82 &781815198 stripped -AudioSource: - m_CorrespondingSourceObject: {fileID: 7585931024614860467, guid: ead4e790fa3a1924ebd1586c93cd5479, type: 3} - m_PrefabInstance: {fileID: 1374202465} - m_PrefabAsset: {fileID: 0} --- !u!1 &801067978 stripped GameObject: m_CorrespondingSourceObject: {fileID: 1011363502278351410, guid: 9b2926886934b554f9a1727331d34787, type: 3} @@ -444303,6 +444314,22 @@ MonoBehaviour: interactionComplete: m_PersistentCalls: m_Calls: [] +--- !u!114 &801067985 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 801067978} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 242e6101be071f44fb14c3c12641c833, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::AppleAudioSource + audioSourceType: 0 + audioSource: {fileID: 0} + clipPriority: 0 + sourcePriority: 0 --- !u!1 &812734406 GameObject: m_ObjectHideFlags: 0 @@ -445271,6 +445298,9 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 1011363502278351410, guid: 9b2926886934b554f9a1727331d34787, type: 3} insertIndex: -1 addedObject: {fileID: 801067982} + - targetCorrespondingSourceObject: {fileID: 1011363502278351410, guid: 9b2926886934b554f9a1727331d34787, type: 3} + insertIndex: -1 + addedObject: {fileID: 801067985} m_SourcePrefab: {fileID: 100100000, guid: 9b2926886934b554f9a1727331d34787, type: 3} --- !u!1001 &845071531 PrefabInstance: @@ -445884,6 +445914,22 @@ AudioSource: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 +--- !u!114 &863771842 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 178369350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 242e6101be071f44fb14c3c12641c833, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::AppleAudioSource + audioSourceType: 0 + audioSource: {fileID: 0} + clipPriority: 0 + sourcePriority: 0 --- !u!1 &871315074 stripped GameObject: m_CorrespondingSourceObject: {fileID: 5383276844808284485, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} @@ -450600,6 +450646,9 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 1011363502278351410, guid: 9b2926886934b554f9a1727331d34787, type: 3} insertIndex: -1 addedObject: {fileID: 2133104408} + - targetCorrespondingSourceObject: {fileID: 1011363502278351410, guid: 9b2926886934b554f9a1727331d34787, type: 3} + insertIndex: -1 + addedObject: {fileID: 2133104411} m_SourcePrefab: {fileID: 100100000, guid: 9b2926886934b554f9a1727331d34787, type: 3} --- !u!1 &1073425382 GameObject: @@ -451710,6 +451759,9 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 780600094299918916, guid: 4b7426bc1f8736749b68973653f4dbfb, type: 3} insertIndex: -1 addedObject: {fileID: 21238931} + - targetCorrespondingSourceObject: {fileID: 780600094299918916, guid: 4b7426bc1f8736749b68973653f4dbfb, type: 3} + insertIndex: -1 + addedObject: {fileID: 21238932} m_SourcePrefab: {fileID: 100100000, guid: 4b7426bc1f8736749b68973653f4dbfb, type: 3} --- !u!1 &1106104746 GameObject: @@ -457157,6 +457209,10 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 4188190597242138317, guid: ead4e790fa3a1924ebd1586c93cd5479, type: 3} + propertyPath: sourcePriority + value: 1 + objectReference: {fileID: 0} - target: {fileID: 6199677512542707633, guid: ead4e790fa3a1924ebd1586c93cd5479, type: 3} propertyPath: m_Name value: QuarryAudio @@ -462708,108 +462764,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 5145306031820616614, guid: fbbe1f4baf226904b96f839fe0c00181, type: 3} m_PrefabInstance: {fileID: 1638360119} m_PrefabAsset: {fileID: 0} ---- !u!1 &1638507537 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 5943355783477523754, guid: 9b2926886934b554f9a1727331d34787, type: 3} - m_PrefabInstance: {fileID: 661675797} - m_PrefabAsset: {fileID: 0} ---- !u!82 &1638507543 -AudioSource: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1638507537} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} - m_audioClip: {fileID: 0} - m_Resource: {fileID: 0} - m_PlayOnAwake: 1 - m_Volume: 1 - m_Pitch: 1 - Loop: 0 - Mute: 0 - Spatialize: 0 - SpatializePostEffects: 0 - Priority: 128 - DopplerLevel: 1 - MinDistance: 1 - MaxDistance: 500 - Pan2D: 0 - rolloffMode: 0 - BypassEffects: 0 - BypassListenerEffects: 0 - BypassReverbZones: 0 - rolloffCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - panLevelCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - spreadCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - reverbZoneMixCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 --- !u!1001 &1643200520 PrefabInstance: m_ObjectHideFlags: 0 @@ -468626,6 +468580,22 @@ MonoBehaviour: interactionComplete: m_PersistentCalls: m_Calls: [] +--- !u!114 &1872179206 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872179199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 242e6101be071f44fb14c3c12641c833, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::AppleAudioSource + audioSourceType: 0 + audioSource: {fileID: 0} + clipPriority: 0 + sourcePriority: 0 --- !u!1 &1877702733 GameObject: m_ObjectHideFlags: 0 @@ -474235,9 +474205,6 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 5172497182660285677, guid: 0c2275f0a1451a142b686a049a2ebcec, type: 3} insertIndex: -1 addedObject: {fileID: 2117822313} - - targetCorrespondingSourceObject: {fileID: 5172497182660285677, guid: 0c2275f0a1451a142b686a049a2ebcec, type: 3} - insertIndex: -1 - addedObject: {fileID: 2117822314} m_SourcePrefab: {fileID: 100100000, guid: 0c2275f0a1451a142b686a049a2ebcec, type: 3} --- !u!4 &2117822311 stripped Transform: @@ -474262,103 +474229,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: AppleHillsScripts::Dialogue.DialogueComponent dialogueGraph: {fileID: 3965311268370046156, guid: ef08ef9a5b2f5064a889414ba2244a62, type: 3} ---- !u!82 &2117822314 -AudioSource: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2117822312} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 3533147658878909314, guid: 727a7e4b6df4b0d47897f7d8ee7fa323, type: 2} - m_audioClip: {fileID: 0} - m_Resource: {fileID: 0} - m_PlayOnAwake: 1 - m_Volume: 1 - m_Pitch: 1 - Loop: 0 - Mute: 0 - Spatialize: 0 - SpatializePostEffects: 0 - Priority: 128 - DopplerLevel: 1 - MinDistance: 1 - MaxDistance: 500 - Pan2D: 0 - rolloffMode: 0 - BypassEffects: 0 - BypassListenerEffects: 0 - BypassReverbZones: 0 - rolloffCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - panLevelCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - spreadCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - reverbZoneMixCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 --- !u!1001 &2122075105 PrefabInstance: m_ObjectHideFlags: 0 @@ -474369,11 +474239,11 @@ PrefabInstance: m_Modifications: - target: {fileID: 1592061707390547073, guid: 7be57ba4ecd292f4c90169045a2d69e4, type: 3} propertyPath: m_LocalPosition.x - value: 7.4399986 + value: 7.439999 objectReference: {fileID: 0} - target: {fileID: 1592061707390547073, guid: 7be57ba4ecd292f4c90169045a2d69e4, type: 3} propertyPath: m_LocalPosition.y - value: 11.469999 + value: 11.47 objectReference: {fileID: 0} - target: {fileID: 1592061707390547073, guid: 7be57ba4ecd292f4c90169045a2d69e4, type: 3} propertyPath: m_LocalPosition.z @@ -475124,6 +474994,22 @@ MonoBehaviour: interactionComplete: m_PersistentCalls: m_Calls: [] +--- !u!114 &2133104411 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2133104404} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 242e6101be071f44fb14c3c12641c833, type: 3} + m_Name: + m_EditorClassIdentifier: AppleHillsScripts::AppleAudioSource + audioSourceType: 0 + audioSource: {fileID: 0} + clipPriority: 0 + sourcePriority: 0 --- !u!4 &2144703707 stripped Transform: m_CorrespondingSourceObject: {fileID: 9067462609398217044, guid: 6cbcaf4eb20e63e4fb462f6fb1ada3a7, type: 3} @@ -475547,6 +475433,9 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 1011363502278351410, guid: 9b2926886934b554f9a1727331d34787, type: 3} insertIndex: -1 addedObject: {fileID: 863771839} + - targetCorrespondingSourceObject: {fileID: 1011363502278351410, guid: 9b2926886934b554f9a1727331d34787, type: 3} + insertIndex: -1 + addedObject: {fileID: 863771842} m_SourcePrefab: {fileID: 100100000, guid: 9b2926886934b554f9a1727331d34787, type: 3} --- !u!1001 &2428672463423402429 PrefabInstance: @@ -477469,7 +477358,7 @@ PrefabInstance: - target: {fileID: 1569498917964935965, guid: c36b48a324dcaef4cb5ee0f8ca57f0d6, type: 3} propertyPath: m_SceneBindings.Array.data[12].value value: - objectReference: {fileID: 781815198} + objectReference: {fileID: 0} - target: {fileID: 1569498917964935965, guid: c36b48a324dcaef4cb5ee0f8ca57f0d6, type: 3} propertyPath: m_SceneBindings.Array.data[13].value value: diff --git a/Assets/Scripts/Dialogue/DialogueComponent.cs b/Assets/Scripts/Dialogue/DialogueComponent.cs index 209daff4..216946e0 100644 --- a/Assets/Scripts/Dialogue/DialogueComponent.cs +++ b/Assets/Scripts/Dialogue/DialogueComponent.cs @@ -122,7 +122,7 @@ namespace Dialogue if (clip != null) { appleAudioSource.audioSource.resource = clip; - appleAudioSource.Play(); + appleAudioSource.Play(1); Logging.Debug($"Playing dialogue audio: {clip.name}"); } } diff --git a/Assets/Scripts/Sound/AppleAudioSource.cs b/Assets/Scripts/Sound/AppleAudioSource.cs index 19d74c0f..19896244 100644 --- a/Assets/Scripts/Sound/AppleAudioSource.cs +++ b/Assets/Scripts/Sound/AppleAudioSource.cs @@ -15,8 +15,8 @@ public class AppleAudioSource : MonoBehaviour public AudioSourceType audioSourceType; public AudioSource audioSource; private AudioMixer _audioMixer; - - public int priority; + [HideInInspector ] public int clipPriority; + public int sourcePriority; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() @@ -52,8 +52,9 @@ public class AppleAudioSource : MonoBehaviour } - public void Play() + public void Play(int requestedClipPriority) { + clipPriority = requestedClipPriority; if (audioSourceType == AudioSourceType.CriticalVO || audioSourceType == AudioSourceType.VO) { if (AudioManager.Instance.RequestPlayVO(this)) @@ -62,20 +63,24 @@ public class AppleAudioSource : MonoBehaviour } else { - Debug.Log("AppleAudioSource " + name + " was suppressed because something more important is playing"); + Debug.Log("[AUDIOMANAGER] AppleAudioSource " + name + " was suppressed because something more important is playing"); } } + else + { + audioSource.Play(); + } } public void InterruptAudio(string nameOfInterruptingAudio) { - Debug.Log("AppleAudioSource " + name + " was interrupted by source: " + nameOfInterruptingAudio); Stop(); } public void Stop() - { + { + clipPriority = 0; audioSource.Stop(); } diff --git a/Assets/Scripts/Sound/AudioManager.cs b/Assets/Scripts/Sound/AudioManager.cs index 5e6c2300..a47326e4 100644 --- a/Assets/Scripts/Sound/AudioManager.cs +++ b/Assets/Scripts/Sound/AudioManager.cs @@ -35,6 +35,7 @@ public class AudioManager : MonoBehaviour, IPausable public List SFXSources; private IAudioEventSource _eventSource; + private bool wasInterrupted; /// /// Singleton instance of the AudioManager. @@ -141,33 +142,61 @@ public class AudioManager : MonoBehaviour, IPausable /// public bool RequestPlayVO(AppleAudioSource requestedAudioSource) { - + //Debug.Log($"[AUDIOMANAGER] CurrentVO source prio: {currentlyPlayingVO.sourcePriority}, clip prio: {currentlyPlayingVO.clipPriority} requested VO prio: {requestedAudioSource.sourcePriority}, clip prio: {clipPriority}"); + // If nothing is playing, let the requested audio source play if (currentlyPlayingVO == null) { - currentlyPlayingVO = requestedAudioSource; - Debug.Log($"CurrentVO prio: {currentlyPlayingVO.priority} requested VO prio: {requestedAudioSource.priority}"); - RegisterStartStopEvents(requestedAudioSource.audioSource); + SetupNewAudioSource(requestedAudioSource); + Debug.Log($"[AUDIOMANAGER] Playing {currentlyPlayingVO.name} as nothing is currently playing."); return true; } - if(currentlyPlayingVO.audioSourceType != AppleAudioSource.AudioSourceType.CriticalVO) + // If the requested audio source is the same, interrupt and trigger it again + if (currentlyPlayingVO == requestedAudioSource) + { + InterruptAudioSource(requestedAudioSource); + SetupNewAudioSource(requestedAudioSource); + Debug.Log($"[AUDIOMANAGER] {currentlyPlayingVO.name} is the same as {requestedAudioSource.name}. Triggering it again."); + return true; + + } + // if the currently playing audio source is not critical, interrupt it and play the requested audio source + if (currentlyPlayingVO.audioSourceType != AppleAudioSource.AudioSourceType.CriticalVO) + { + + InterruptAudioSource(requestedAudioSource); + SetupNewAudioSource(requestedAudioSource); + Debug.Log($"[AUDIOMANAGER] {currentlyPlayingVO.name} is not critical. Playing {requestedAudioSource.name} instead because it is critical."); + return true; + } + // If the requested audio source has the same priority as currently playing source, check the priority of the requested clip + if (currentlyPlayingVO.audioSourceType == AppleAudioSource.AudioSourceType.CriticalVO && currentlyPlayingVO.sourcePriority == requestedAudioSource.sourcePriority) + { + if (currentlyPlayingVO.clipPriority > requestedAudioSource.clipPriority) + { + InterruptAudioSource(requestedAudioSource); + SetupNewAudioSource(requestedAudioSource); + Debug.Log($"[AUDIOMANAGER] Interrupted {currentlyPlayingVO.name} because it has same priority as {requestedAudioSource.name} but the requested clip has higher priority"); + + return true; + } + else + { + return false; + } + } + // If the requested audio source has higher priority than the currently playing source, interrupt the current source and let the requested one play + if (currentlyPlayingVO.audioSourceType == AppleAudioSource.AudioSourceType.CriticalVO && currentlyPlayingVO.sourcePriority > requestedAudioSource.sourcePriority) { currentlyPlayingVO.InterruptAudio(requestedAudioSource.name); - currentlyPlayingVO = requestedAudioSource; - Debug.Log($"CurrentVO prio: {currentlyPlayingVO.priority} requested VO prio: {requestedAudioSource.priority}"); - RegisterStartStopEvents(requestedAudioSource.audioSource); - return true; - } - if (currentlyPlayingVO.audioSourceType == AppleAudioSource.AudioSourceType.CriticalVO && currentlyPlayingVO.priority > requestedAudioSource.priority) - { - currentlyPlayingVO.InterruptAudio(requestedAudioSource.name); - Debug.Log($"CurrentVO prio: {currentlyPlayingVO.priority} requested VO prio: {requestedAudioSource.priority}"); - currentlyPlayingVO = requestedAudioSource; - RegisterStartStopEvents(requestedAudioSource.audioSource); + Debug.Log($"[AUDIOMANAGER] Interrupted {currentlyPlayingVO.name} because {requestedAudioSource.name} has higher priority"); + InterruptAudioSource(requestedAudioSource); + SetupNewAudioSource(requestedAudioSource); return true; } + // If the requested audio source didn't clear any of the above cases, tell it to get rekt. else - { - Debug.Log($"CurrentVO prio: {currentlyPlayingVO.priority} requested VO prio: {requestedAudioSource.priority}"); + { + Debug.Log($"[AUDIOMANAGER] {currentlyPlayingVO.name} is still playing. {requestedAudioSource.name} has lower priority"); return false; } } @@ -177,15 +206,16 @@ public class AudioManager : MonoBehaviour, IPausable // TODO: Release the handles safely ReleaseAllHandles(); } - private void RegisterStartStopEvents(AudioSource audioSource) + private void SetupNewAudioSource(AppleAudioSource audioSource) { - if (audioSource.resource == null) + if (audioSource.audioSource.resource == null) { - Debug.Log($"AppleAudioSource {audioSource.name} could not register Start and Stop events."); + Debug.Log($"[AUDIOMANAGER] Faled to setup {audioSource.name}. Invalid resource"); } else { - _eventSource = audioSource.RequestEventHandlers(); + currentlyPlayingVO = audioSource; + _eventSource = audioSource.audioSource.RequestEventHandlers(); _eventSource.AudioStopped += OnAudioStopped; _eventSource.AudioStarted += OnAudioStarted; } @@ -193,14 +223,34 @@ public class AudioManager : MonoBehaviour, IPausable private void OnAudioStopped(object sender, EventArgs e) { - currentlyPlayingVO = null; - _eventSource.AudioStopped -= OnAudioStopped; - _eventSource.AudioStarted -= OnAudioStarted; - + if (wasInterrupted) + { + ResetAudioSource(); + } + else + { + currentlyPlayingVO = null; + ResetAudioSource(); + } } private void OnAudioStarted(object sender, EventArgs e) { } + + private void ResetAudioSource() + { + _eventSource.AudioStopped -= OnAudioStopped; + _eventSource.AudioStarted -= OnAudioStarted; + wasInterrupted = false; + } + + private void InterruptAudioSource(AppleAudioSource newAudioSource) + { + wasInterrupted = true; + currentlyPlayingVO.InterruptAudio(newAudioSource.name); + ResetAudioSource(); + currentlyPlayingVO = newAudioSource; + } } diff --git a/Assets/Scripts/Sound/BushAudioController.cs b/Assets/Scripts/Sound/BushAudioController.cs index 6064e92f..71163db1 100644 --- a/Assets/Scripts/Sound/BushAudioController.cs +++ b/Assets/Scripts/Sound/BushAudioController.cs @@ -8,8 +8,8 @@ using UnityEngine.Audio; public class BushAudioController : MonoBehaviour { private IAudioEventSource _eventSource; - public AudioSource VOPlayer; - public AudioSource SFXPlayer; + public AppleAudioSource VOPlayer; + public AppleAudioSource SFXPlayer; public AudioResource reactionClipToPlay; public AudioResource flashSFXClipToPlay; @@ -22,28 +22,28 @@ public class BushAudioController : MonoBehaviour // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { - _eventSource = VOPlayer.RequestEventHandlers(); + _eventSource = VOPlayer.audioSource.RequestEventHandlers(); _eventSource.AudioStopped += PlayBirdCounter; } public void PlayPhotoSoundBite() { - VOPlayer.resource = reactionClipToPlay; - VOPlayer.Play(); + VOPlayer.audioSource.resource = reactionClipToPlay; + VOPlayer.Play(0); } public void PlayFlashSound() { - SFXPlayer.resource = flashSFXClipToPlay; - SFXPlayer.Play(); + SFXPlayer.audioSource.resource = flashSFXClipToPlay; + SFXPlayer.Play(0); } private void PlayBirdCounter(object sender, EventArgs e) { _eventSource.AudioStopped -= PlayBirdCounter; - VOPlayer.resource = birdCounterClip[birdGameStats.birdsFoundInLevel]; - VOPlayer.Play(); + VOPlayer.audioSource.resource = birdCounterClip[birdGameStats.birdsFoundInLevel]; + VOPlayer.Play(0); birdGameStats.BirdFound(); } diff --git a/Assets/Scripts/Sound/LevelAudioObject.cs b/Assets/Scripts/Sound/LevelAudioObject.cs index 86a4c1ff..ed74b94d 100644 --- a/Assets/Scripts/Sound/LevelAudioObject.cs +++ b/Assets/Scripts/Sound/LevelAudioObject.cs @@ -16,7 +16,7 @@ public class LevelAudioObject : MonoBehaviour void PlayNarrationAudio() { narratorAudioSource.audioSource.resource = firstNarration; - narratorAudioSource.Play(); + narratorAudioSource.Play(0); } } diff --git a/docs/audiomanager_readme.md b/docs/audiomanager_readme.md new file mode 100644 index 00000000..501ea6a1 --- /dev/null +++ b/docs/audiomanager_readme.md @@ -0,0 +1,44 @@ +# Apple Hills Audio Manager +This document describes the classes and functionality of the AudioManager, LevelAudioObject and AppleAudioSource classes and components. + +# AudioManager +The AudioManager is loaded through the bootstrap framework and will be added to every single level and minigame automatically. + +It implements our Singletong framework and you can call functionality on the manager from any script in the project using: +``` +AudioManager.Instance.WhatEverFunctionYouDesire(); +``` + +## General overview +Everything that makes a sound should add the `AppleAudioSource` component. This component automatically adds Unity's own AudioSource that handles playing audio, but wraps it in our own custom class enabling more control over the game's audio assets. +All `AppleAudioSource` assets registers themselves with the `AudioManager` Singleton class that gets loaded in all levels allowing us to control all audio sources without fiddling with every single gameobject that makes sound. +All `AppleAudioSource` assets routes their audio to the AudioMixer which allows us to change the volume on categories of sounds i.e. ambience, music, sound etc. seperately. The AudioMixer also allows us to add effects to every category of sounds seperately and has a Master bus to control the general volume of all sound effects in the game. + +## AudioManager component +![The AudioManager Component.](media/audiomanager_component.png) +The AudioManager component requires only one reference to function: The AudioMixer asset that handles all audio routing and volume mixing of the project. + +### AudioManager options +The AudioManager only has one available option which is how it should handle audio when the game is paused. +**No Audio** pauses all audio sources when Pause is called on the GameManager. +**Play All Audio** ignores Pause completely by using `UnscaledTime`. +**MusicOnly** is still TODO and not fully implemented, but it also sets the mixer to work on `UnscaledTime` and we just need pause all other audio sources when Pause is called on the GameManager. + +### AudioMixer +![The AudioMixer asset controlling all volumes.](media/audiomixer.png) +All AppleAudioSources outputs their audio to the `AppleHillsAudioMix` asset which handles the final volume of all audio sources of the game. +This allows us to expose volume sliders to options, and to tweak the volume of each sound source seperately, add effects like limiters, compressors etc. +**Ambience** is for the atmospheric background audio. Wind in the trees, bird chirps, water burbles etc. Outputs audio to the Master channel. +**SFX** is for smacks, whooshes, and other sound effects. Outputs audio to the Master channel. +**Music** is for.. music.. Outputs audio to the Master channel. +**Voice Over** is the accumulated audio of critical voice-over and flavor VO. Outputs audio to the Master channel. +**Critical VO** is all voice-over that guides the player and is considered more important to hear than everything else in the game. Outputs audio the the Voice Over channel. +**Flavor VO** is voice-over used for jokes, screams etc. and which is considered less important to hear than critical VO. Outputs audio to the Voice Over channel. + + + + + +``` +Some code +``` \ No newline at end of file diff --git a/docs/media/audiomanager_component.png b/docs/media/audiomanager_component.png new file mode 100644 index 0000000000000000000000000000000000000000..4839fbdb5567a5f273b6bf8b4f4734c31c8a8ecf GIT binary patch literal 24855 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

j`hjsAvhsYJRYeSfcB9Ne=&SSI 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%0AJY89E3SYfOO=Q7LWP z@N5yG_%1vxHAr;A^@4FzJT3(<*Y)4)C?lX!qmSkXUU*5r8??aV0V{F$egWVkN)4IC z03!H8yh7o5SSdc-hOGWN*dNTQ^!R;O#*}_rz98n2Kq(1gG{Q%*%n{HCw_f+h(n}4K zNI6jwV9EC!Ig%6$ZkdIPIg{2G^vUc-KF)DAmP@zfhCq8V*;mD4MzDKN)DMjoE&$FLCa<`e%l>R#0yg&rHgQoA8*9gN(=w0_=eOJH zrR+oFs_f${T;q3dpaxsPcCU>UtYEljqHrvSyZGe=KBaA(Wob)Ki61o!di;aQ%Iz14 zu?Nd8i3RHogDB}2-}P`E^4X@Kuo_q?uAwHJ8M=38bg(95=?gr(kfqOb*slBWr8%Eh z?V}%J%Z6d69ad}UJ@wL`*dxr-@VGB%2*=o0uG1isi1zu%cwtDkFuyizI>2rr z#^DfaOe;oDg;!AB+TJ)nPk6zKQm^%lPwLuPrv-o4I~Xi(Nv@3a?_R)7e6+nY(&JML z0y}(;ar?S`ULHF773fn;Cq;|Dp*j^UN0WW>1s}H5ki+JN6hnNVQ4+~*&sz8yYJK(! zXvDc3Np(<3+d@cWh#8<@zvV;*;5R1OB%u6K+_v*96=#Jkt2vwD*>`SHV6&*Kx}yQn zDMwDXm0FFBmVcRKLc77`)t z9Ti)`P4rvu*_a;1F!pAk&}m-OzNLN-CyEXY_ZOL=9|FfPKvXECnRu5j>OLDz_?Dud zzzr3EE2Lg)$CZ;3ohMn#ydC-S>Ab+F&9{t zE2-WDlhU%>X`NQ1JpE-nw`U8Ze{__S&(!3}8!ubIQ%*i{Wf3aI?s6h#zCbQuj}kKY zI#?9fol3t)P=Og67z`1f(XHD0SsZv;E_UD4t%#8%(Z39ZC((+4(SgG!u-FUklW~Ms z5_aQL3JRaDgi?P z4}?P=?FGYQF#j3F2fSCyvG&(e>F23e#TB&%zUsqO=>Pd2qL=HJdVv^6xLJ*LFSG>;fyc%0I6|pu%lMk!(Nt{@AGA z!m*>IU>7i5yTflI-E2W!P3M|;&G#5DB79_qW(y5dVKf&F^+ipc{sMvG1*ksnR0PR~ zSn@kbu2o)T&DRPIFUWtcDeWdbpsCi}J9skoKSUeNukO6EF_AIDyf4;hpGddPU(Yn` zfQ8jG=5;1nVK_{eR|#XUC~NS@W(SSnXeoQ(v6QUUq?uT>S}x+|176q3rQG37%c|$S z{{|v+&jsfLG|I%^Hhr7FZTjD(H2?M>CQ)SH4{A{R-mn4|ocV<7?7nL{#o~=^X z4)wog9hE@j!De$kmfWb20Gq63VkgkRxQJxsgPJ8vv6@GXg+!d12w)fbL-_w@;ke&q z(+(QISQYR;f5#yP{ON&Ah&nuWuO#w8G*R{&y(JglfH&xG>M;B!v7yS