Hi!
There is a problem when playing audio, namely the delay before playback-long audio file.
When you press the w (walking) must immediately, endlessly reproduced audio file, if you release the button, no sound.
FPS rigidbody
var sandSteps: AudioClip[];
var concreteSteps: AudioClip[];
var cloverSteps: AudioClip[];
var metalSteps: AudioClip[];
private var t : Transform;
private var cTag : String;
public var hitLayer : LayerMask;
private var nextFire = 0.0;
var volumeZero:boolean;
function GetAudio() : AudioClip
{
var hit : RaycastHit;
if(Physics.Raycast(transform.position + new Vector3(0, 0.5, 0), -Vector3.up, hit,3, hitLayer))
{
cTag = hit.collider.tag.ToLower();
}
if(cTag == "sand")
{
return sandSteps[Random.Range(0, sandSteps.length)];
}
else if(cTag == "concrete")
{
return concreteSteps[Random.Range(0, concreteSteps.length)];
}
else if(cTag == "clover")
{
return cloverSteps[Random.Range(0, cloverSteps.length)];
}
else if(cTag == "metal")
{
return metalSteps[Random.Range(0, metalSteps.length)];
}
}
function Update() {
if (Input.GetKey("w") ||Input.GetKey("s")||Input.GetKey("a")||Input.GetKey("d")) {
volumeZero=false;
if (Time.time > nextFire) {
audio.volume=Random.Range(1,1);
nextFire = Time.time +GetAudio().length;
audio.PlayOneShot(GetAudio());
}
} else if (Input.GetKeyUp("w") ||Input.GetKeyUp("s")||Input.GetKeyUp("a")||Input.GetKeyUp("d")) {
volumeZero=true;
}
if (volumeZero) audio.volume=Mathf.Lerp(audio.volume,0,Time.deltaTime*10);
}