using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using JetBrains.Annotations;
|
|
using UnityEngine;
|
|
using Random = UnityEngine.Random;
|
|
|
|
public class AudioRandomiser : MonoBehaviour
|
|
{
|
|
public AudioClip[] audioSources;
|
|
public HerdController herd;
|
|
|
|
public GameObject audioPosition;
|
|
public float waitTime;
|
|
public float[] volumes;
|
|
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
|
|
}
|
|
|
|
void Awake()
|
|
{
|
|
StartCoroutine(PlayClips());
|
|
}
|
|
|
|
public void PlaySoundFromCount()
|
|
{
|
|
int count = 1;
|
|
if (herd != null)
|
|
{
|
|
count = (int) Mathf.Round(herd.HerdAmount() / 10);
|
|
count = Mathf.Clamp(count, 1, 10);
|
|
}
|
|
|
|
for (int i = 0; i < count; i++)
|
|
{
|
|
StartCoroutine(RandomSound());
|
|
}
|
|
}
|
|
|
|
|
|
public IEnumerator RandomSound()
|
|
{
|
|
float wait = Random.Range(0.5f, 4.5f);
|
|
yield return new WaitForSeconds(wait);
|
|
AudioClip clip = audioSources[Random.Range(0, audioSources.Length)];
|
|
float volume = Random.Range(volumes[0], volumes[1]);
|
|
AudioSource.PlayClipAtPoint(clip, audioPosition.transform.position, volume);
|
|
}
|
|
|
|
public IEnumerator PlayClips()
|
|
{
|
|
yield return new WaitForSeconds(waitTime);
|
|
PlaySoundFromCount();
|
|
StartCoroutine(PlayClips());
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
|
|
}
|
|
}
|