Hiệu ứng chuyển cảnh (Screen Transition)

Tags:
UI
Effects
Scene Management

C# Code

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

public class ScreenFader : MonoBehaviour
{
    public static ScreenFader Instance;
    public Image fadeImage;
    public float fadeSpeed = 1.5f;

    void Awake()
    {
        if (Instance == null) {
            Instance = this;
            DontDestroyOnLoad(gameObject);
        } else {
            Destroy(gameObject);
        }
    }

    public void FadeToScene(string sceneName)
    {
        StartCoroutine(FadeOutAndLoad(sceneName));
    }

    IEnumerator FadeOutAndLoad(string sceneName)
    {
        yield return StartCoroutine(Fade(1f)); // Fade Out
        SceneManager.LoadScene(sceneName);
        yield return StartCoroutine(Fade(0f)); // Fade In
    }

    IEnumerator Fade(float targetAlpha)
    {
        Color currentColor = fadeImage.color;
        float startAlpha = currentColor.a;
        float timer = 0f;

        while (timer < 1f)
        {
            timer += Time.deltaTime * fadeSpeed;
            currentColor.a = Mathf.Lerp(startAlpha, targetAlpha, timer);
            fadeImage.color = currentColor;
            yield return null;
        }

        currentColor.a = targetAlpha;
        fadeImage.color = currentColor;
    }
}

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.

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

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

Một script quản lý việc chuyển cảnh trong Unity, bao gồm cả việc tải cảnh bất đồng bộ (asynchronously) với thanh tiến trình (loading bar).

Gameplay
Scene Management
UI

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.

UI
Health
Effects

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