Cách tạo Hệ thống tăng sức mạnh (Powerup System) trong Unity

Dong Ho · about 1 min read

    Sonic The Hedgehog sẽ ra sao nếu không có nhẫn vàng và giày thể thao quyền lực; Super Mario, không có nấm; hay Pac-Man không có viên năng lượng? Các trò chơi sẽ không thú vị bằng!

    Power-up là một thành phần trò chơi quan trọng vì chúng thêm các lớp phức tạp và chiến lược bổ sung để giữ cho hành động di chuyển.

    Để triển khai Power-Up, thực hiện theo các bước sau:

    • Tạo một GameObject mới để đại diện cho Power-Up của bạn.
    • Thêm một Collider component vào GameObject của bạn và bật IsTrigger option.
    • Thêm một Rigidbody component vào GameObject của bạn và đặt Gravity Scale thành 0.
    • Tạo một script để xử lý chuyển động của Power-Up và các trigger của nó.

    Dưới đây là một ví dụ:

    using UnityEngine;
    
    public class PowerUp : MonoBehaviour
    {
        public float speedBoost = 10f;
        public float powerUpDuration = 5f;
    
        private void OnTriggerEnter(Collider other)
        {
            if (other.CompareTag("Player"))
            {
                StartCoroutine(Pickup(other));
            }
        }
    
        IEnumerator Pickup(Collider player)
        {
            // Apply effect to player
            player.GetComponent<PlayerController>().speed += speedBoost;
    
            // Disable the power-up object
            GetComponent<MeshRenderer>().enabled = false;
            GetComponent<Collider>().enabled = false;
    
            // Wait for powerupDuration
            yield return new WaitForSeconds(powerUpDuration);
    
            // Reverse the effect on player
            player.GetComponent<PlayerController>().speed -= speedBoost;
    
            // Destroy the power-up object
            Destroy(gameObject);
        }
    }
    

    Tham khảo thêm: kodeco.com

    Xem thêm các bài viết khác cùng chủ đề
    Outline

    history cached

    play_arrow arrow_right_alt

    update skip_next

    create close

    settings arrow_downward

    ×

    Memo

    ...
    ×

    Under Maintenance