AI Tấn công Tầm xa (Ranged Attack)

Tags:
AI
Gameplay
Spawning
Physics

C# Code

using UnityEngine;

public class AIRangedAttack : MonoBehaviour
{
    public Transform playerTransform;
    public GameObject projectilePrefab;
    public Transform firePoint;
    public float attackRange = 15f;
    public float fireRate = 1f; // Số lần bắn mỗi giây
    private float nextFireTime = 0f;

    void Update()
    {
        if (playerTransform == null) return;

        float distanceToPlayer = Vector3.Distance(transform.position, playerTransform.position);

        if (distanceToPlayer <= attackRange)
        {
            // Nhìn về phía người chơi
            transform.LookAt(playerTransform.position);

            // Kiểm tra nếu đã đến lúc bắn
            if (Time.time >= nextFireTime)
            {
                Shoot();
                nextFireTime = Time.time + 1f / fireRate;
            }
        }
    }

    void Shoot()
    {
        if (projectilePrefab != null && firePoint != null)
        {
            Instantiate(projectilePrefab, firePoint.position, firePoint.rotation);
        }
    }

    void OnDrawGizmosSelected()
    {
        Gizmos.color = Color.red;
        Gizmos.DrawWireSphere(transform.position, attackRange);
    }
}

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.

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

Tạo một viên đạn (projectile) tại một điểm và bắn nó đi theo một hướng xác định. Thường dùng cho nhân vật hoặc kẻ địch.

Gameplay
Player
Spawning
Physics

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

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ẽ 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

Một cấu trúc để một con boss thay đổi hành vi và bộ kỹ năng khi máu của nó xuống dưới các ngưỡng nhất định.

AI
Gameplay
Combat

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

Cho phép người chơi đẩy các vật thể có Rigidbody khi di chuyển vào chúng. Lực đẩy có thể điều chỉnh được.

Physics
Interaction
Player
Gameplay

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