44 lines
986 B
C#
44 lines
986 B
C#
using System;
|
|
using UnityEngine;
|
|
|
|
namespace Zenject.Asteroids
|
|
{
|
|
public class AudioHandler : IInitializable, IDisposable
|
|
{
|
|
readonly SignalBus _signalBus;
|
|
readonly Settings _settings;
|
|
readonly AudioSource _audioSource;
|
|
|
|
public AudioHandler(
|
|
AudioSource audioSource,
|
|
Settings settings,
|
|
SignalBus signalBus)
|
|
{
|
|
_signalBus = signalBus;
|
|
_settings = settings;
|
|
_audioSource = audioSource;
|
|
}
|
|
|
|
public void Initialize()
|
|
{
|
|
_signalBus.Subscribe<ShipCrashedSignal>(OnShipCrashed);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
_signalBus.Unsubscribe<ShipCrashedSignal>(OnShipCrashed);
|
|
}
|
|
|
|
void OnShipCrashed()
|
|
{
|
|
_audioSource.PlayOneShot(_settings.CrashSound);
|
|
}
|
|
|
|
[Serializable]
|
|
public class Settings
|
|
{
|
|
public AudioClip CrashSound;
|
|
}
|
|
}
|
|
}
|