smart-interactive-display/Assets/GadGame/Scripts/AudioObject.cs

49 lines
1.0 KiB
C#
Raw Normal View History

using System;
using Cysharp.Threading.Tasks;
using Pools.Runtime;
using UnityEngine;
namespace GadGame
{
public class AudioObject : MonoBehaviour, IPoolable
{
[SerializeField] private AudioSource _source;
private bool _alive;
private void Update()
{
if (_alive && !_source.isPlaying)
{
this.Release();
}
}
public void Play(AudioClip audioClip, float volume = 1, bool loop = false)
{
_source.clip = audioClip;
_source.volume = 1;
_source.loop = loop;
_source.Play();
_alive = true;
}
public void Stop()
{
_source.Stop();
}
public void OnGet()
{
_source.Stop();
_source.clip = null;
_source.loop = false;
}
public void OnRelease()
{
_alive = false;
_source.clip = null;
_source.loop = false;
}
}
}