title: Can't Jump on Unity3D
body: <p>I have a problem about jump for a character..
  I can use CharacterMotor.Move() for jumping, but no .SimpleMove(), why?</p>
  
  <p>This is my class at the moment:</p>
  
  <pre><code>public float speed = 10.0f;
  public float rotationSpeed = 10.0f;
  public float jumpSpeed = 50.0f;
  public float gravitySpeed = 30.0f;
  
  public string Avancer = "z";
  public string Reculer = "s";
  public string RotationGauche = "q";
  public string RotationDroite = "d";
  public string SlideGauche = "a";
  public string SlideDroite = "e";
  public string Jump = "space";
  
  CharacterController cc;
  Vector3 newPos;
  
  public void Start()
  {
      cc = GetComponent&lt;CharacterController&gt; ();
  }
  
  public void Update()
  {
              /*Movements part*/
              if (Input.GetKey (Avancer.ToString ())) {
                      newPos = new Vector3 (speed, 0, 0);
                      newPos = transform.rotation * newPos;
                      cc.SimpleMove (newPos);
              } else if (Input.GetKey (Reculer.ToString ())) {
                      newPos = new Vector3 (speed * -1, 0, 0);
                      newPos = transform.rotation * newPos;
                      cc.SimpleMove (newPos);
              } else if (Input.GetKey (SlideGauche.ToString ())) {
                      newPos = new Vector3 (0, 0, speed);
                      newPos = transform.rotation * newPos;
                      cc.SimpleMove (newPos);
              } else if (Input.GetKey (SlideDroite.ToString ())) {
                      newPos = new Vector3 (0, 0, speed * -1);
                      newPos = transform.rotation * newPos;
                      cc.SimpleMove (newPos);
              } else if (Input.GetKey (RotationGauche.ToString ())) {
                      transform.Rotate (0, rotationSpeed * -1, 0);
              } else if (Input.GetKey (RotationDroite.ToString ())) {
                      transform.Rotate (0, rotationSpeed, 0);
              } else if (cc.isGrounded &amp;&amp; Input.GetKeyDown (Jump.ToString ())) {
                      newPos = new Vector3 (0, jumpSpeed * Time.deltaTime, 0);
                      cc.SimpleMove (newPos);
                      //cc.Move (newPos);
                      print ("JUMP !");
              } else if (!cc.isGrounded) {
                      newPos = new Vector3 (0, (gravitySpeed * Time.deltaTime) * -1, 0);
                      cc.SimpleMove (newPos);
                      print ("en l'air");
              }
              /*Movements part*/
  
  
      }
  </code></pre>
  
  <p>I just not understand why it don't perform</p>
  
  <p>So if you can help me, thank you</p>
  
  <p><strong><em>EDIT</em></strong></p>
  
  <pre><code>using UnityEngine;
  using System.Collections;
  using System.Collections.Generic;
  
  [AddComponentMenu("Camera-Control/Mouse Look")]
  public class palskie : MonoBehaviour
  {   
  public float speed = 1000000.0f;
  public float rotationSpeed = 10.0f;
  public float jumpSpeed = 100.0f;
  public float gravitySpeed = 50f;
  
  public string Avancer = "z";
  public string Reculer = "s";
  public string RotationGauche = "q";
  public string RotationDroite = "d";
  public string SlideGauche = "a";
  public string SlideDroite = "e";
  public string Jump = "space";
  
  private CharacterController cc;
  Vector3 dir = Vector3.zero;
  
  public int ammo = 100;
  public int life = 100;
  
  public void Start()
  {
      cc = GetComponent&lt;CharacterController&gt; ();
  }
  
  public void Update()
  {
              /*Movements part*/
              Vector3 direction;// = Vector3.zero;
  
              if (cc.isGrounded &amp;&amp; Input.GetKeyDown (Jump.ToString ())) {
                      dir.y = jumpSpeed;
                      direction = dir;
              } else if (!cc.isGrounded) {
                      dir.y -= gravitySpeed;
                      direction = dir;
              } else {
                      direction = Vector3.zero;
              }
  
              if (Input.GetKey (Avancer.ToString ())) {
                      direction.x = speed;
  
  
              } else if (Input.GetKey (Reculer.ToString ())) {
                      direction.x -= speed;
              }
              if (Input.GetKey (SlideGauche.ToString ())) {
  
                      direction.z = speed;
              } else if (Input.GetKey (SlideDroite.ToString ())) {
                      direction.z = -speed;
              }
              if (Input.GetKey (RotationGauche.ToString ())) {
                      transform.Rotate (0, rotationSpeed * -1, 0);
              } else if (Input.GetKey (RotationDroite.ToString ())) {
                      transform.Rotate (0, rotationSpeed, 0);
              }
  
              //Transformer le Vector3 en direction local
              direction = transform.TransformDirection (direction);
  
              //Deplacement du personnage
              cc.Move (direction * Time.deltaTime);
  
              transform.Rotate (0, Input.GetAxis ("Mouse X") * rotationSpeed, 0);
              /*Movements part*/
      }
  
      void OnTriggerEnter(Collider obj)
      {
              if ((obj.gameObject.name == "Healt")) {
                      life += 5;
                      if (life &gt; 100) 
                              life = 100;
                      Destroy (obj.gameObject);
              } else if ((obj.gameObject.name == "Ammo")) {
                      ammo += 5;
                      if (ammo &gt; 200)
                              ammo = 200;
                      Destroy (obj.gameObject);
              }
  
      }
  
  }
  </code></pre>
  
  <p>last edit, it works ! :) We found solution  after long search ;)
  Thank for you help :)</p>
  
  <p>[SOLVED]</p>