- Home /
How would i add different surfaces? FOOTSTEPS
My footsteps now only plays a walk sound and run sound. But how do i make a walk sound for Metal, run sound for metal and walk sound for concrete, run sound for concrete?
#pragma strict
var walk : AudioClip[]; // fill this array with the sounds at the Inspector
var run : AudioClip[]; // fill this array with the sounds at the Inspector
var walkAudioSpeed : float = 0.4;
var runAudioSpeed : float = 0.2;
private var walkAudioTimer : float = 0.0;
private var runAudioTimer : float = 0.0;
var isWalking : boolean = false;
var isRunning : boolean = false;
var chCtrlReturnTrue : boolean = true;
var clipType : String = "";
function Update()
{
if ( chCtrlReturnTrue )
{
PlayFootsteps();
}
else
{
walkAudioTimer = 0.0;
runAudioTimer = 0.0;
audio.pitch = 0.9 + 0.7*Random.value; // randomize pitch in the range 1 +/- 0.1
}
}
function PlayFootsteps()
{
if ( Input.GetAxis( "Horizontal" ) || Input.GetAxis( "Vertical" ) )
{
if ( Input.GetKey( "left shift" ) || Input.GetKey( "right shift" ) )
{
// Running
isWalking = false;
isRunning = true;
}
else
{
// Walking
isWalking = true;
isRunning = false;
}
}
else
{
// Stopped
isWalking = false;
isRunning = false;
clipType = "";
}
// Play Audio
if ( isWalking )
{
if ( clipType != "walk" )
{
audio.Stop();
audio.clip = walk[ Random.Range(0, walk.Length) ];
clipType = "walk";
}
//if ( !audio.isPlaying )
if ( walkAudioTimer > walkAudioSpeed )
{
Debug.Log("Playing");
audio.Stop();
audio.Play();
walkAudioTimer = 0.0;
}
}
else if ( isRunning )
{
if ( clipType != "run" )
{
audio.Stop();
audio.clip = run[ Random.Range(0, run.Length) ];
clipType = "run";
}
if ( runAudioTimer > runAudioSpeed )
{
audio.Stop();
audio.Play();
runAudioTimer = 0.0;
//You can randomize the audio clip again here, if you need to
}
}
else
{
audio.Stop();
}
// increment timers
walkAudioTimer += Time.deltaTime;
runAudioTimer += Time.deltaTime;
}
Comment
This is done in the Angrybots tutorial included with Unity. It works by assigning a specific sound to different physic materials. It would probably work for you, and it would be really quick to get up and running.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
How to add Elements? Multiple ones!????? Help PLease 1 Answer
Changing the audio on key press! Help 3 Answers
PLEASE Help me with this Audio Issue 1 Answer
Audio on Collision code doesn't work? 2 Answers