Thanh máu có hiệu ứng động

Tags:
UI
Health
Effects

C# Code

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class AnimatedHealthBar : MonoBehaviour
{
    public Slider mainHealthSlider;      // Thanh máu chính, hiển thị máu hiện tại
    public Slider delayedHealthSlider; // Thanh máu phụ, chạy theo sau thanh chính
    public float delaySpeed = 2f;      // Tốc độ của thanh máu phụ

    public void SetMaxHealth(int health)
    {
        mainHealthSlider.maxValue = health;
        mainHealthSlider.value = health;
        delayedHealthSlider.maxValue = health;
        delayedHealthSlider.value = health;
    }

    public void SetHealth(int health)
    {
        mainHealthSlider.value = health;
        StartCoroutine(UpdateDelayedSlider(health));
    }

    private IEnumerator UpdateDelayedSlider(int newHealth)
    {
        // Chờ một chút trước khi thanh phụ bắt đầu di chuyển
        yield return new WaitForSeconds(0.5f);

        float timer = 0f;
        float startValue = delayedHealthSlider.value;

        while (timer < 1f)
        {
            timer += Time.deltaTime * delaySpeed;
            delayedHealthSlider.value = Mathf.Lerp(startValue, newHealth, timer);
            yield return null;
        }

        delayedHealthSlider.value = newHealth;
    }
}

Tạo một thanh máu có hiệu ứng giảm từ từ và nhấp nháy khi nhận sát thương, mang lại cảm giác mượt mà hơ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

Làm cho văn bản trong TextMeshPro xuất hiện tuần tự từng chữ một, tạo cảm giác như đang được gõ máy chữ, thường dùng trong hội thoại.

UI
Effects
TextMeshPro

Một hệ thống đơn giản để tạo hiệu ứng chuyển cảnh, ví dụ như làm mờ dần sang màu đen (Fade to Black) khi tải scene mới.

UI
Effects
Scene Management

Tự động áp dụng hiệu ứng Depth of Field để làm mờ màn hình khi game được tạm dừng, yêu cầu gói Post Processing.

UI
Effects
Pause Menu

Tạo một thanh máu dạng World Space UI (ví dụ: trên đầu kẻ địch) và đảm bảo nó luôn xoay về phía camera chính của người chơi.

3D
UI
Health
Camera

Tạo ra một đối tượng Text bay lên và mờ dần, thường được sử dụng để hiển thị số sát thương gây ra hoặc điểm số nhận được.

UI
Effects
Feedback

Phát ra các âm thanh bước chân khác nhau tùy thuộc vào loại bề mặt vật liệu (qua Tag) mà người chơi đang đi trên đó, ví dụ: cỏ, gỗ, đá.

Audio
Physics
Player
Effects

Một script để quản lý một điểm đánh dấu trên UI (ví dụ: icon nhiệm vụ), đảm bảo nó luôn chỉ đúng hướng tới mục tiêu trong không gian 3D và ghim vào cạnh màn hình khi mục tiêu ở ngoài tầm nhìn.

UI
Navigation
Quest
Camera

Sử dụng Rich Text tags để thay đổi màu sắc của một phần văn bản trong TextMeshPro một cách linh hoạt mà không cần thay đổi màu của toàn bộ đối tượng.

UI
TextMeshPro
Rich Text

Sử dụng DOPunchScale của DOTween để tạo hiệu ứng 'nảy' hoặc 'đấm' cho đối tượng, rất hữu ích cho các nút bấm hoặc item.

DOTween
Animation
Punch
UI

Sử dụng DOTween để thay đổi kích thước của một đối tượng, tạo hiệu ứng phóng to hoặc thu nhỏ.

DOTween
Animation
Scale
UI