Files
butchers-games-test/Assets/Scripts/Game/Level/RandomAudioWithDelay.cs
T
Boris Nikolaev 5f1e94b653 add project files
2026-08-14 01:58:31 +03:00

48 lines
862 B
C#

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;
}
}