- Home /
 
 
               Question by 
               dis_pear · Apr 20, 2015 at 12:49 AM · 
                c#javascriptmovementcontroller  
              
 
              Condition on Character Movement
I copied and pasted the character movement script from one of the Unity sample projects. The code is below. How do I make it so this movement only occurs when the player is holding down a key/button?
Thank you.
 using UnityEngine;
 public class Char1MovementAlt : MonoBehaviour
 {
 public float speed = 6f;            // The speed that the player will move at.
 
 Vector3 movement;                   // The vector to store the direction of the player's movement.
 Animator anim;                      // Reference to the animator component.
 Rigidbody playerRigidbody;          // Reference to the player's rigidbody.
 int floorMask;                      // A layer mask so that a ray can be cast just at gameobjects on the floor layer.
 float camRayLength = 100f;          // The length of the ray from the camera into the scene.
 
 void Awake ()
 {
     // Create a layer mask for the floor layer.
     floorMask = LayerMask.GetMask ("Floor");
     
     // Set up references.
     anim = GetComponent <Animator> ();
     playerRigidbody = GetComponent <Rigidbody> ();
 }
 
 
 void FixedUpdate ()
 {
     // Store the input axes.
     float h = Input.GetAxisRaw ("Horizontal");
     float v = Input.GetAxisRaw ("Vertical");
     
     // Move the player around the scene.
     Move (h, v);
 }
 
 void Move (float h, float v)
 {
     // Set the movement vector based on the axis input.
     movement.Set (h, 0f, v);
     
     // Normalise the movement vector and make it proportional to the speed per second.
     movement = movement.normalized * speed * Time.deltaTime;
     
     // Move the player to it's current position plus the movement.
     playerRigidbody.MovePosition (transform.position + movement);
 }
 }
 
              
               Comment
              
 
               
              Answer by DoTA_KAMIKADzE · Apr 20, 2015 at 12:49 AM
 void FixedUpdate()
 {
     if (Input.GetKey(KeyCode.Space))
     {
         // Store the input axes.
         float h = Input.GetAxisRaw("Horizontal");
         float v = Input.GetAxisRaw("Vertical");
         // Move the player around the scene.
         Move(h, v);
     }
 }
 
              Your answer
 
             Follow this Question
Related Questions
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
Making a bubble level (not a game but work tool) 1 Answer
How to sprint but only when moving forward? 2 Answers
Character is sliding? 1 Answer
Spaceship Control Problems 0 Answers