Files
Scampz/Assets/Scripts/Audio/Footsteps.cs

55 lines
1.3 KiB
C#

using Scampz.GameJam.Assets.Scripts;
using UnityEngine;
namespace Scampz.GameJam
{
[RequireComponent(typeof(AudioSource))]
public class Footsteps : MonoBehaviour
{
[SerializeField]
private SFXClip grassStep;
[SerializeField]
private SFXClip templeStep;
[SerializeField]
private SFXClip sandStep;
[SerializeField]
private AudioSource audioSource;
public void Step()
{
Debug.Log("Step SFX");
var soundEffect = GetAudioClip();
audioSource.pitch = Random.Range(soundEffect.pitchMin, soundEffect.pitchMax);
audioSource.volume = Random.Range(soundEffect.volumeMin, soundEffect.volumeMax);
audioSource.clip = soundEffect.audioClip;
audioSource.PlayOneShot(soundEffect.audioClip);
}
private SFXClip GetAudioClip()
{
var terrainType = TerrainTypeFinder.Find();
switch (terrainType)
{
case TerrainType.Grass:
return grassStep;
case TerrainType.Temple:
return templeStep;
case TerrainType.Sand:
return sandStep;
}
return templeStep;
}
}
[System.Serializable]
public struct SFXClip
{
public AudioClip audioClip;
public float pitchMin;
public float pitchMax;
public float volumeMin;
public float volumeMax;
}
}