- 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