45 lines
932 B
C#
45 lines
932 B
C#
|
|
using UdonSharp;
|
|
using UnityEngine;
|
|
using VRC.SDKBase;
|
|
using VRC.Udon;
|
|
|
|
|
|
[UdonBehaviourSyncMode(BehaviourSyncMode.None)]
|
|
public class TimerSounds : TimerBase
|
|
{
|
|
[SerializeField] private AudioSource _AudioSource;
|
|
[SerializeField] private AudioClip[] _AudioClips;
|
|
[Space]
|
|
[SerializeField] private bool _Loop = true;
|
|
[SerializeField] private float _MinimumDelay = 0.0f;
|
|
[SerializeField] private float _MaximumDelay = 1.0f;
|
|
|
|
|
|
private void Start()
|
|
{
|
|
TimerLength = Random.Range(_MinimumDelay, _MaximumDelay);
|
|
}
|
|
|
|
|
|
public override void StopTimer()
|
|
{
|
|
base.StopTimer();
|
|
TimerLength = 0.0f;
|
|
}
|
|
|
|
public override void TimerEvent()
|
|
{
|
|
_AudioSource.Stop();
|
|
AudioClip NextAudioClip = _AudioClips[Random.Range(0, _AudioClips.Length)];
|
|
_AudioSource.clip = NextAudioClip;
|
|
_AudioSource.Play();
|
|
|
|
if (_Loop)
|
|
{
|
|
TimerLength = NextAudioClip.length + Random.Range(_MinimumDelay, _MaximumDelay);
|
|
StartTimer();
|
|
}
|
|
}
|
|
}
|