Hệ thống Stamina (Thể lực)
C# Code
using UnityEngine;
using UnityEngine.UI;
public class StaminaController : MonoBehaviour
{
public float maxStamina = 100f;
private float currentStamina;
public float staminaDrainRate = 20f; // Stamina mất mỗi giây khi chạy
public float staminaRegenRate = 10f; // Stamina hồi mỗi giây khi đứng yên
public Slider staminaBar; // Tham chiếu đến UI Slider
private bool isSprinting = false;
void Start()
{
currentStamina = maxStamina;
if (staminaBar != null) staminaBar.maxValue = maxStamina;
}
void Update()
{
// Kiểm tra input chạy (ví dụ: giữ phím Shift)
isSprinting = Input.GetKey(KeyCode.LeftShift) && currentStamina > 0;
if (isSprinting)
{
currentStamina -= staminaDrainRate * Time.deltaTime;
}
else if (currentStamina < maxStamina)
{
currentStamina += staminaRegenRate * Time.deltaTime;
}
currentStamina = Mathf.Clamp(currentStamina, 0, maxStamina);
if (staminaBar != null)
{
staminaBar.value = currentStamina;
}
}
public bool CanSprint()
{
return currentStamina > 0;
}
}Quản lý thanh thể lực cho các hành động như chạy nước rút. Thể lực sẽ giảm khi chạy và tự động hồi lại khi đứng yên.