Files
HauntedBloodlines/Assets/Scripts/Scripted Events/PlayMultipleSounds.cs
2025-05-29 22:31:40 +03:00

54 lines
1.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayMultipleSounds : MonoBehaviour
{
[SerializeField] AudioSource _audioSource;
[SerializeField] AudioClip[] _audioClip;
[HideInInspector] public bool ClipStopped;
private bool ClipPlayed;
private void OnTriggerEnter(Collider col)
{
if (col.gameObject.tag == "Player" && !ClipPlayed)
{
StartCoroutine(PlayRandomClip());
print("Play random clip");
}
}
IEnumerator PlayRandomClip()
{
while (!ClipStopped)
{
foreach (AudioClip audioClip in _audioClip)
{
AudioClip clip = GetRandomClip();
if (!_audioSource.isPlaying)
{
_audioSource.PlayOneShot(clip);
}
}
yield return null;
}
}
private void OnTriggerExit(Collider col)
{
if (col.gameObject.tag == "Player")
{
ClipPlayed = true;
}
}
private AudioClip GetRandomClip() //Gets a random clip sound from the array.
{
return _audioClip[UnityEngine.Random.Range(0, _audioClip.Length)];
}
}