forked from cgvr/DeltaVR
deltavr multiplayer 2.0
This commit is contained in:
43
Assets/_PROJECT/Scripts/Audio/AudioClipGroup.cs
Normal file
43
Assets/_PROJECT/Scripts/Audio/AudioClipGroup.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Audio
|
||||
{
|
||||
[CreateAssetMenu(menuName = "AudioClipGroup")]
|
||||
public class AudioClipGroup : ScriptableObject
|
||||
{
|
||||
[Range(0, 2)] public float volumeMin = 1;
|
||||
[Range(0, 2)] public float volumeMax = 1;
|
||||
[Range(0, 2)] public float pitchMin = 1;
|
||||
[Range(0, 2)] public float pitchMax = 1;
|
||||
|
||||
public float delay = 0.1f;
|
||||
public List<AudioClip> audioClips;
|
||||
|
||||
private float _timestamp;
|
||||
|
||||
public void OnEnable()
|
||||
{
|
||||
_timestamp = 0;
|
||||
}
|
||||
|
||||
public void Play()
|
||||
{
|
||||
if (AudioSourcePool.Instance == null) return;
|
||||
|
||||
Play(AudioSourcePool.Instance.GetAudioSource());
|
||||
}
|
||||
|
||||
public void Play(AudioSource source)
|
||||
{
|
||||
if (audioClips.Count <= 0) return;
|
||||
if (_timestamp > Time.time) return;
|
||||
_timestamp = Time.time + delay;
|
||||
|
||||
source.volume = Random.Range(volumeMin, volumeMax);
|
||||
source.pitch = Random.Range(pitchMin, pitchMax);
|
||||
source.clip = audioClips[Random.Range(0, audioClips.Count)];
|
||||
source.Play();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user