Tải và chuyển cảnh (SceneLoader)

Tags:
Gameplay
Scene Management
UI

C# Code

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

public class SceneLoader : MonoBehaviour
{
    public Slider loadingBar;
    public GameObject loadingScreen;

    // Tải một cảnh bằng tên của nó
    public void LoadScene(string sceneName)
    {
        StartCoroutine(LoadSceneAsynchronously(sceneName));
    }

    private IEnumerator LoadSceneAsynchronously(string sceneName)
    {
        AsyncOperation operation = SceneManager.LoadSceneAsync(sceneName);

        if (loadingScreen != null) loadingScreen.SetActive(true);

        while (!operation.isDone)
        {
            // operation.progress có giá trị từ 0 đến 0.9
            float progress = Mathf.Clamp01(operation.progress / 0.9f);
            
            if (loadingBar != null) loadingBar.value = progress;

            Debug.Log("Loading progress: " + (progress * 100f) + "%");

            yield return null;
        }
    }

    // Tải lại cảnh hiện tại
    public void ReloadCurrentScene()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }
}

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).

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 đơ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

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.

Gameplay
Player
Stamina
UI

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

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

AI chỉ có thể 'nhìn thấy' và phát hiện người chơi nếu họ nằm trong một hình nón phía trước mặt nó. Hữu ích cho các game stealth.

AI
Gameplay
Stealth

AI sẽ bắn đạn về phía người chơi khi họ ở trong tầm tấn công và có một khoảng thời gian chờ (cooldown) giữa mỗi lần bắn.

AI
Gameplay
Spawning
Physics

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

Một script đơn giản cho AI để di chuyển tuần tự qua một danh sách các điểm (waypoints). Khi đến điểm cuối cùng, nó sẽ quay trở lại điểm đầu tiên.

AI
Movement
Gameplay