55 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|