add project files
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
public class RandomAudioWithDelay : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
[FormerlySerializedAs("source")]
|
||||
private AudioSource _source;
|
||||
|
||||
[SerializeField]
|
||||
public List<AudioClip> randomClips;
|
||||
|
||||
[SerializeField]
|
||||
public float minDelay;
|
||||
|
||||
private float _lastPlayTime = -1f;
|
||||
|
||||
private float _ratioMinDelay = 1f;
|
||||
|
||||
private System.Random random;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
random = new System.Random();
|
||||
}
|
||||
|
||||
public void PlayNext()
|
||||
{
|
||||
if (Time.time <= _lastPlayTime + minDelay * _ratioMinDelay)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_lastPlayTime = Time.time;
|
||||
AudioClip clip = OHM.UnityToolkit.RandomExtensions.ListElem(random, randomClips);
|
||||
if (clip != null)
|
||||
{
|
||||
_source.PlayOneShot(clip);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetRatioMinDelay(float ratio)
|
||||
{
|
||||
_ratioMinDelay = ratio;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user