The problem is the delay before playback audio

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);



}

try to assign a bollean variable for button pressed,the change check on thath variable.

var sandSteps: AudioClip[];
var concreteSteps: AudioClip[];
var cloverSteps: AudioClip[];
var metalSteps: AudioClip[];
var pressed:boolean=false;

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")) {
       pressed=true;
              }

 if (pressed){

volumeZero=false;

if (Time.time > nextFire) {
audio.volume=Random.Range(1,1);
nextFire = Time.time +GetAudio().length;
audio.PlayOneShot(GetAudio());
}
}

else  {
volumeZero=true;
}
}


if (volumeZero) audio.volume=Mathf.Lerp(audio.volume,0,Time.deltaTime*10);



}

devilkkw Somewhat different from the problem of the delay before playback

How to get rid of it? : (

if (Time.time > nextFire) {
audio.volume=Random.Range(1,1);
nextFire = Time.time +GetAudio().length;
audio.PlayOneShot(GetAudio());
}

Try removing your volume code and see if the delay of playback is still a issue.

Otherwise the delay could very well be in your sound files.