您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
49 行
1.3 KiB
49 行
1.3 KiB
using UnityEngine;
|
|
|
|
public class CharacterAudio : MonoBehaviour
|
|
{
|
|
[SerializeField] AudioSource footstepsAudioSource = null;
|
|
[SerializeField] AudioSource jumpingAudioSource = null;
|
|
|
|
[Header("Audio Clips")]
|
|
[SerializeField] AudioClip[] softSteps = null;
|
|
[SerializeField] AudioClip[] hardSteps = null;
|
|
[SerializeField] AudioClip softLanding = null;
|
|
[SerializeField] AudioClip hardLanding = null;
|
|
[SerializeField] AudioClip jump = null;
|
|
|
|
[Header("Steps")]
|
|
[SerializeField] float stepsTimeGap = 1f;
|
|
|
|
private float stepsTimer;
|
|
|
|
public void PlaySteps(GroundType groundType, float speedNormalized)
|
|
{
|
|
if (groundType == GroundType.None)
|
|
return;
|
|
|
|
stepsTimer += Time.fixedDeltaTime * speedNormalized;
|
|
|
|
if (stepsTimer >= stepsTimeGap)
|
|
{
|
|
var steps = groundType == GroundType.Hard ? hardSteps : softSteps;
|
|
int index = Random.Range(0, steps.Length);
|
|
footstepsAudioSource.PlayOneShot(steps[index]);
|
|
|
|
stepsTimer = 0;
|
|
}
|
|
}
|
|
|
|
public void PlayJump()
|
|
{
|
|
jumpingAudioSource.PlayOneShot(jump);
|
|
}
|
|
|
|
public void PlayLanding(GroundType groundType)
|
|
{
|
|
if (groundType == GroundType.Hard)
|
|
jumpingAudioSource.PlayOneShot(hardLanding);
|
|
else
|
|
jumpingAudioSource.PlayOneShot(softLanding);
|
|
}
|
|
}
|