diff --git a/Assets/Darkmatter/Code/Services/Audio/Installers/AudioServiceModule.cs b/Assets/Darkmatter/Code/Services/Audio/Installers/AudioServiceModule.cs index 4b81763..8d05014 100644 --- a/Assets/Darkmatter/Code/Services/Audio/Installers/AudioServiceModule.cs +++ b/Assets/Darkmatter/Code/Services/Audio/Installers/AudioServiceModule.cs @@ -16,8 +16,17 @@ namespace Darkmatter.Services.Audio { if (sfxCatalog != null) builder.RegisterComponent(sfxCatalog); - if (audioService != null) - builder.RegisterComponent(audioService); + + var resolved = audioService; + if (resolved == null) resolved = GetComponent(); + if (resolved == null) resolved = GetComponentInChildren(includeInactive: true); + if (resolved == null) resolved = FindFirstObjectByType(FindObjectsInactive.Include); + + if (resolved != null) + builder.RegisterComponent(resolved); + else + Debug.LogError("[AudioServiceModule] No AudioService component found. SFX/music won't play. Assign 'audioService' field or add AudioService MonoBehaviour to scene."); + builder.Register(Lifetime.Singleton); } } diff --git a/Assets/Darkmatter/Code/Services/Audio/Systems/AudioService.cs b/Assets/Darkmatter/Code/Services/Audio/Systems/AudioService.cs index 3f3137a..b4334f2 100644 --- a/Assets/Darkmatter/Code/Services/Audio/Systems/AudioService.cs +++ b/Assets/Darkmatter/Code/Services/Audio/Systems/AudioService.cs @@ -72,8 +72,18 @@ namespace Darkmatter.Services.Audio private Dictionary _mixerGroups; private float[] _currentWeights; + private bool _initialized; + + private void Awake() + { + InitializeAsync(default).Forget(); + } + public UniTask InitializeAsync(CancellationToken cancellationToken) { + if (_initialized) return UniTask.CompletedTask; + _initialized = true; + if (sourceRoot == null) sourceRoot = transform; _lifetimeCts = new CancellationTokenSource(); diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index eb26b46..1490c70 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -12,7 +12,7 @@ PlayerSettings: targetDevice: 2 useOnDemandResources: 0 accelerometerFrequency: 60 - companyName: Darkmatter + companyName: Darkmatter Game Production productName: 'Colorbook : Draw and Learn' defaultCursor: {fileID: 0} cursorHotspot: {x: 0, y: 0}