forked from cgvr/DeltaVR
		
	
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
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();
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |