Quản lý hành động theo thời gian với Coroutine

Tags:
Gameplay
Timer
Coroutine
Architecture

C# Code

using UnityEngine;
using System.Collections;

public class CoroutineExample : MonoBehaviour
{
    void Start()
    {
        Debug.Log("Hành động sẽ bắt đầu sau 2 giây.");
        StartCoroutine(DelayedAction(2f));
    }

    private IEnumerator DelayedAction(float delay)
    {
        // Dừng thực thi của hàm này trong 'delay' giây
        yield return new WaitForSeconds(delay);

        // Code bên dưới sẽ chạy sau khi chờ xong
        Debug.Log("Đã 2 giây trôi qua!");
        GetComponent<Renderer>().material.color = Color.blue;
    }
}

Một ví dụ cơ bản về cách sử dụng Coroutine để thực hiện một hành động sau một khoảng thời gian chờ, mà không làm đóng băng game.

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

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

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

Một cấu trúc cơ bản để tạo, theo dõi và hoàn thành nhiệm vụ, sử dụng ScriptableObject để định nghĩa nhiệm vụ.

Gameplay
Quest
ScriptableObject
Architecture

Một hệ thống để tặng quà cho người chơi khi họ đăng nhập mỗi ngày, sử dụng PlayerPrefs để theo dõi thời gian đăng nhập cuối cùng.

Gameplay
Saving
Daily Reward
Timer

Một cấu trúc Finite State Machine (FSM) đơn giản sử dụng enum và switch-case để quản lý các trạng thái khác nhau của AI, như đi tuần, truy đuổi và tấn công.

AI
Architecture
Design Pattern
Gameplay

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 cho phép người chơi tương tác với nhiều loại đối tượng (cửa, NPC, vật phẩm) chỉ bằng một nút bấm khi ở trong tầm.

Gameplay
Interaction
Player
Architecture
Interface

Một script đơn giản để tạo (spawn) các vật thể (prefabs) theo một khoảng thời gian định trước.

Gameplay
Spawning
Timer

Ví dụ về cách dùng UniTask để viết code bất đồng bộ một cách gọn gàng và hiệu quả hơn Coroutine, với hỗ trợ async/await đầy đủ và không cần MonoBehaviour.

Optimization
Architecture
UniTask
Coroutine

Một hệ thống để spawn các đợt (wave) kẻ địch. Đợt tiếp theo sẽ bắt đầu sau khi tất cả kẻ địch trong đợt hiện tại đã bị tiêu diệt và một khoảng thời gian chờ trôi qua.

AI
Gameplay
Spawning
Coroutine