private void FixedUpdate() { if (!dropThroughPlatforms && AtlasInputManager.getKey("Jump") && isCrouching()) { dropThroughPlatforms = true; controller.collisions.Reset(); Vector3 downVec = Vector3.down; controller.VerticalCollisions(ref downVec); controller.checkGrounded(downVec.y); } anim.SetBool("isGrounded", isGrounded()); if (isGrounded()) { coyoteTime = maxCoyoteTime; } else if (coyoteTime > 0) { coyoteTime--; } if (state == State.Reset || state == State.Wait || state == State.Menu) { return; } controller.Move(velocity * Time.deltaTime); controller.checkWallSlide(facing); isWallSliding(); if (controller.collisions.above || controller.collisions.below) { velocity.y = 0; } }