- Home /
 
 
               Question by 
               Dragonfly3r · Nov 06, 2014 at 04:50 PM · 
                inputaudio  
              
 
              Play sound upon Input in Javascript
Using 1 of the default scripts by unity for its FPSInputController but finding some difficulty in playing an audio clip of the player jumping. Code is as follows:
  private var motor : CharacterMotor;
  public var jumpSound : AudioClip;
   // Use this for initialization
   function Awake () {
   motor = GetComponent(CharacterMotor);
  }
  // Update is called once per frame
  function Update () {
  // Get the input vector from keyboard or analog stick
  var directionVector = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
 
  if (directionVector != Vector3.zero) {
     // Get the length of the directon vector and then normalize it
     // Dividing by the length is cheaper than normalizing when we already have the length anyway
     var directionLength = directionVector.magnitude;
     directionVector = directionVector / directionLength;
     
     // Make sure the length is no bigger than 1
     directionLength = Mathf.Min(1, directionLength);
     
     // Make the input vector more sensitive towards the extremes and less sensitive in the middle
     // This makes it easier to control slow speeds when using analog sticks
     directionLength = directionLength * directionLength;
     
     // Multiply the normalized direction vector by the modified length
     directionVector = directionVector * directionLength;
 }
 
 // Apply the direction to the CharacterMotor
 motor.inputMoveDirection = transform.rotation * directionVector;
 motor.inputJump = Input.GetButton("Jump");
 if (Input.GetButton("Jump"))
 {
     
     jumpSound.PlayOneShot(jumpSound, 0.3); 
     jumpSound.Play();
 }
 }
 // Require a character controller to be attached to the same game object
 @script RequireComponent (CharacterMotor)
 @script AddComponentMenu ("Character/FPS Input Controller")
 
               Any ideas as to why this is not playing and how I can go about fixing it?
               Comment
              
 
               
              I find no 'Play()' or 'PlayOnShot()' method associated with an AudioClip in the reference, so I don't know how this code compiles. Add and AudioSource component to the game object with the above script and then do this to play:
     audio.PlayOneShot(jumpSound, 0.3);
 
                 So you're saying I have to do something at bottom e.g.
@script RequireComponent (AudioSource) 
Answer by Josenifftodd · Nov 06, 2014 at 05:26 PM
This might help you out.
 @script RequireComponent(AudioSource)
     function Start() {
         audio.Play();
         // Delay a clip by 1 sec (44100 samples)
         audio.Play(44100);
     }
 
              Would this work in conjuction with
 public var jumpSound : AudioClip;
 
  if (Input.GetButton("Jump"))
  {
      
      jumpSound.PlayOneShot(jumpSound, 0.3); 
      jumpSound.Play();
  }
 ?
                 Your answer