void Update()
{
if (controller.collisions.above || controller.collisions.below)
{
velocity.y = 0;
jumped = false;
}
Vector2 input = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));
if (canPull && Input.GetKeyDown(KeyCode.W))
{
lever.pull();
}
if (Input.GetKeyDown (KeyCode.Space) && controller.collisions.below)
{
velocity.y = jumpVelocity;
jumped = true;
}
if (Input.GetKeyDown(KeyCode.Space) && !controller.collisions.below && jumped)
{
velocity.y = jumpVelocity;
jumped = false;
}
if (Input.GetKeyDown(KeyCode.LeftShift) && !isCooldown)
{
if (Input.GetKey(KeyCode.A))
{
//velocity.y = 0;
isCooldown = true;
controller.Move(new Vector2(-flashDistance, 0));
}
else if (Input.GetKey(KeyCode.D))
{
//velocity.y = 0;
isCooldown = true;
controller.Move(new Vector2(flashDistance, 0));
}
}
if (isCooldown)
cooldown += Time.deltaTime;
if (cooldown >= cooldownMax)
{
cooldown = 0;
isCooldown = false;
}
float targetVelocityX = input.x * moveSpeed;
velocity.x = Mathf.SmoothDamp(velocity.x, targetVelocityX, ref velocityXSmoothing, (controller.collisions.below)? accelerationTimeGrounded :accelerationTimeAirborne);
velocity.y += gravity * Time.deltaTime;
controller.Move(velocity* Time.deltaTime);
}