Hệ thống Stamina (Thể lực)

Tags:
Gameplay
Player
Stamina
UI

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.

Bình luận (0)

Bạn cần đăng nhập để có thể bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Bài viết liên quan

Một hệ thống linh hoạt cho phép người chơi tương tác với nhiều loại đối tượng (cửa, vật phẩm, NPC, công tắc) chỉ bằng một nút bấm (E) khi ở trong tầm, kèm hiển thị gợi ý trên màn hình.

Interaction
Gameplay
Player
Architecture
Interface
UI

AI sẽ phát hiện người chơi trong một phạm vi nhất định và bắt đầu di chuyển về phía họ. Khi người chơi ra khỏi phạm vi, AI sẽ dừng lại.

AI
Movement
Gameplay
Player

Tạo một viên đạn (projectile) tại một điểm và bắn nó đi theo một hướng xác định. Thường dùng cho nhân vật hoặc kẻ địch.

Gameplay
Player
Spawning
Physics

Cho phép nhân vật thực hiện một cú lướt nhanh theo hướng di chuyển hiện tại. Có cooldown để tránh lạm dụng.

Player
Movement
Gameplay
Coroutine

Sử dụng Input System mới của Unity để di chuyển nhân vật 2D hoặc 3D một cách hiệu quả và linh hoạt.

2D
3D
Input
Gameplay
Player

Ví dụ cách sử dụng các tham số Trigger, Bool và Float (cho Blend Tree) để điều khiển các trạng thái animation của nhân vật.

Animation
Animator
Player
Gameplay

Theo dõi các đòn đánh liên tiếp để thực hiện chuỗi combo. Reset combo nếu người chơi không tấn công kịp thời.

Gameplay
Player
Combat

Một hệ thống đơn giản để hiển thị các đoạn hội thoại có nhiều câu và lựa chọn cho người chơi, sử dụng ScriptableObject.

UI
Gameplay
Interaction
ScriptableObject

Một hệ thống kho đồ cơ bản sử dụng ScriptableObject cho dữ liệu vật phẩm và quản lý các ô chứa trong UI.

UI
Gameplay
Inventory
ScriptableObject
Architecture

Hiển thị các điểm đánh dấu (marker) cho các mục tiêu trên một thanh la bàn UI, giúp người chơi định hướng.

UI
Gameplay
Navigation