void ManageStaminaRegeneration() { if (isSprinting && characterController.velocity.sqrMagnitude > 0) { //Decrease stamina sprintValue -= sprintTreshold * Time.deltaTime; if (sprintValue <= 0) { sprintValue = 0; } //Update UI playerStats.DisplayStaminaStats(sprintValue); } else if (sprintValue < 100f) { //Increase stamina andupdate UI sprintValue += (sprintTreshold / 2f) * Time.deltaTime; if (sprintValue >= 100f) { sprintValue = 100f; } //Update UI playerStats.DisplayStaminaStats(sprintValue); } //Play sound if user is low stamina (breath) if (sprintValue <= 45 && !playerAudio.IsPlaying()) { playerAudio.PlayLowStaminaSound(); } }
void FixedUpdate() { float moveHorizontal = Input.GetAxis("Horizontal"); float moveVertical = Input.GetAxis("Vertical"); bool isRunning = Input.GetButton("Run"); // Leikmaður fer 50% hraðar ef hann hleypur if (isRunning) { speedScale = 1.5f; animSpeedScale = 2f; // Animation er keyrt á 2x ef leikmaður hleypur } else { speedScale = 1f; animSpeedScale = 1f; } Vector3 movement = new Vector3(moveHorizontal, 0f, 0f); // Færa leikmann ef hann er ekki frosinn if (!isFrozen) { // Leikmaður má ekki hreyfa sig til vinstri ef hann er lengst til vinstri if (!isFarLeft || moveHorizontal > 0f) { transform.position += movement * speed * speedScale * Time.fixedDeltaTime; } // Athuga hvort leikmaður sé á jörðinni if (IsGrounded()) { // Ef hann velur að hoppa, setja hopp-animation af stað if (Input.GetButton("Jump")) { Vector2 jump = new Vector2(0f, jumpSpeed); rb2d.AddForce(jump, ForceMode2D.Impulse); animator.SetBool("Jump", true); // Spila hopphljóð ef ekkert hljóð er í gangi if (!audioManager.IsPlaying()) { audioManager.PlayAudio("Jump"); } } // Ef hann er á jörðinni og ekki að hoppa, stoppa hopp-animation else { animator.SetBool("Jump", false); } } // Ef leikmaður er ekki að hoppa, færir sig til vinstri og sneri áður til hægri (eða öfugt), snúa honum við if (!animator.GetBool("Jump") && (moveHorizontal < 0 && !isFacingLeft || moveHorizontal > 0 && isFacingLeft)) { Flip(); } // Gönguhraði fyrir animation animator.SetFloat("Speed", Mathf.Abs(moveHorizontal) * animSpeedScale); } // Ef leikmaður er frosinn á animation-hraði hans að vera 0 else { animator.SetFloat("Speed", 0f); } // Ef leikmaður er á leið að kastala, hreyfa hann sjálfkrafa if (walkingTowardsCastle) { transform.position += Vector3.right * speed * Time.fixedDeltaTime; animator.SetFloat("Speed", 1f); } }