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