private void updatePlayerDirection(Vector2 rightStick) { if (rightStick.y > 0) { if (player.isAbSnowman) { anim.SetBool("FacingForward", false); } else { snowmanMelt.FaceDirection(false); } playerMovement.facingUp = false; } else if (rightStick.y < 0) { if (player.isAbSnowman) { anim.SetBool("FacingForward", true); } else { snowmanMelt.FaceDirection(true); } playerMovement.facingUp = true; } }
// Update is called once per frame void Update() { if (!player.isAlive) { return; } float moveX, moveY; if (Input.GetKeyDown(KeyCode.Space)) { onSnow = !onSnow; } float actualSpeed; if (onSnow) { moveX = Input.GetAxisRaw(player.getInputName(Player.InputName.LeftHorizontal)); moveY = Input.GetAxisRaw(player.getInputName(Player.InputName.LeftVertical)); actualSpeed = speedOnSnow; } else { Debug.Assert(player != null); moveX = Input.GetAxis(player.getInputName(Player.InputName.LeftHorizontal)); moveY = Input.GetAxis(player.getInputName(Player.InputName.LeftVertical)); //moveY = Input.GetAxis("Vertical"); actualSpeed = speedOnIce; } //Debug.Log("actual speed: " + actualSpeed); if (!player.isAbSnowman) { actualSpeed *= 7 / (float)(player.playerHealth + 8); if (actualSpeed < 0) { actualSpeed = 0; } //Debug.Log("act speed after calc: " + actualSpeed); } if (moveY < 0 && !facingUp) { if (!player.isAbSnowman) { snowmanMelt.FaceDirection(true); } else { anim.SetBool("FacingForward", true); } facingUp = true; } else if (moveY > 0 && facingUp) { if (!player.isAbSnowman) { snowmanMelt.FaceDirection(false); } else { anim.SetBool("FacingForward", false); } facingUp = false; } rb.velocity = new Vector2(moveX * actualSpeed, moveY * actualSpeed); if (rb.velocity != Vector2.zero) { ++walkingTicks; } if (walkingTicks >= 20) { walkingTicks = 0; if (onSnow) { audioSource.clip = walkingSoundSnow; } else { audioSource.clip = walkingSoundIce; } audioSource.Play(); } }