- Home /
 
Jump & Animation Script 2D
Hi everyone, I'm having problems with my script for my player, the Jump section to be more specific... The problem is that it never reachs the IF statement inside the jump section. If I use the print inside Jump, it'll always prints true, but if I check it outside that part, it works just fine :S please help!
 public class Player : MonoBehaviour{
 
  public float playerSpeedX;
  private bool facingLeft;
  private bool onGround;
  private bool attacking;
  private bool jumping;
  
  private float direction;
  private float gravity;
  
  private static exSpriteAnimation player;
  private Vector3 moveDirection = Vector3.zero;
  public float jumpHeight;
  
  
  void Start (){
  player = GetComponent();
  playerSpeedX = 100f;
  jumpHeight = 40f;
  gravity = 25f;
  facingLeft = false;
  attacking = false;
  jumping = false;
  }
  
  void Update (){
  CharacterController controller = GetComponent();
  onGround = controller.isGrounded;
  
  // Amount to move
  float amtToMoveX = 0;
  
  // Move the player
  if(!attacking && onGround){
  //Move section, no problems here (I use Translate, btw)}
  
  // Attack
  if( Input.GetKeyDown(KeyCode.LeftControl) && onGround){ 
  //Attack section, no problems here}
  
  
  // Jump
  if(Input.GetKey(KeyCode.Space) && onGround)
  { 
  if(!onGround && (player.IsPlaying("playerStand") || player.IsPlaying("playerRun")))
  {
  player.Pause();
  player.Play("playerJump");
  print ("Hi");
  }
  moveDirection.y = jumpHeight;
  print ("onGround: "+onGround); //ALWAYS TRUE
  }
  
  // Stand
  if( onGround && (player.GetCurrentAnimation() == null) || (player.IsPlaying("playerJump")))
  {
  player.Play("playerStand");
  attacking = false;
  jumping = false;
  }
  
  // Apply gravity
  moveDirection.y -= gravity * Time.deltaTime;
     
  // Move the controller
  controller.Move(moveDirection * Time.deltaTime);
  print ("onGround: "+onGround); //WORKS!
  }}
 
               I hope someone can help me with this. Thanks in advance!
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
How to make an animation play after releasing key? 1 Answer
Rotate similar child objects around own origin 2 Answers
I only want my character to jump when touching the ground 4 Answers
Object name not found? 1 Answer
How do I know when an object is going under a Platform Effector 2D object? 0 Answers