Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityStandardAssets.Characters.FirstPerson;
- public class PlayerVitals : MonoBehaviour
- {
- public Slider healtSlider;
- public int maxHealth;
- public int healthFallRate;
- public Slider thirstSlider;
- public int maxThirst;
- public int thirstFallRate;
- public Slider hungerSlider;
- public int maxHunger;
- public int hungerFallRate;
- public Slider staminaSlider;
- public int maxStamina;
- private int staminaFallRate;
- public int staminaFallMult;
- private int staminaRegainRate;
- public int staminaRegainMult;
- private CharacterController charController;
- private FirstPersonController playerController;
- void Start()
- {
- healtSlider.maxValue = maxHealth;
- healtSlider.value = maxHealth;
- thirstSlider.maxValue = maxThirst;
- thirstSlider.value = maxThirst;
- hungerSlider.maxValue = maxHunger;
- hungerSlider.value = maxHunger;
- staminaSlider.maxValue = maxStamina;
- staminaSlider.value = maxStamina;
- staminaFallRate = 1;
- staminaRegainRate = 1;
- charController = GetComponent<CharacterController>();
- playerController = GetComponent<FirstPersonController >();
- }
- void Update()
- {
- //controllo vita
- if (hungerSlider.value <= 0 && (thirstSlider.value <= 0))
- {
- healtSlider.value -= Time.deltaTime / healthFallRate * 2;
- }
- else if (hungerSlider.value <= 0 || thirstSlider.value <= 0)
- {
- healtSlider.value -= Time.deltaTime / healthFallRate ;
- }
- if (healtSlider.value <= 0)
- {
- DeathCharater();
- }
- //controllo fame
- if (hungerSlider.value >= 0)
- {
- hungerSlider.value -= Time.deltaTime / hungerFallRate;
- }
- else if (hungerSlider.value <= 0)
- {
- hungerSlider.value = 0;
- }
- else if (hungerSlider.value >= maxHunger)
- {
- hungerSlider.value = maxHunger;
- }
- // controllo sete
- if (thirstSlider.value >= 0)
- {
- thirstSlider.value -= Time.deltaTime / thirstFallRate;
- }
- else if (thirstSlider.value <= 0)
- {
- thirstSlider.value = 0;
- }
- else if (thirstSlider.value >= maxThirst)
- {
- thirstSlider.value = maxThirst;
- }
- // controllo stamina
- if (charController.velocity.magnitude>0 && Input.GetKey(KeyCode.LeftShift))
- {
- staminaSlider.value -= Time.deltaTime / staminaFallRate * staminaFallMult;
- }
- else
- {
- staminaSlider.value += Time.deltaTime / staminaRegainRate * staminaRegainMult;
- }
- if (staminaSlider.value >= maxStamina)
- {
- staminaSlider.value = maxStamina;
- }
- else if (staminaSlider.value <= 0)
- {
- staminaSlider.value = 0;
- playerController.m_RunSpeed = playerController.m_WalkSpeed;
- }
- else if (staminaSlider.value >= 0)
- {
- playerController.m_RunSpeed = playerController.m_RunSpeedNorm;
- }
- }
- void DeathCharater()
- {
- //fai qualcosa se il charater ha la salute <= 0
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement