以下是一个简单的Unity开发塔防游戏的集火功能代码示例:

using UnityEngine;
using System.Collections;

public class Tower : MonoBehaviour {

    public float fireRate = 1f;
    public float range = 10f;
    public GameObject bulletPrefab;

    private Transform target;

    void Start () {
        InvokeRepeating("UpdateTarget", 0f, 0.5f);
    }

    void UpdateTarget () {
        GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");
        float shortestDistance = Mathf.Infinity;
        GameObject nearestEnemy = null;
        foreach (GameObject enemy in enemies) {
            float distanceToEnemy = Vector3.Distance(transform.position, enemy.transform.position);
            if (distanceToEnemy < shortestDistance) {
                shortestDistance = distanceToEnemy;
                nearestEnemy = enemy;
            }
        }
        if (nearestEnemy != null && shortestDistance <= range) {
            target = nearestEnemy.transform;
        } else {
            target = null;
        }
    }

    void Update () {
        if (target == null) {
            return;
        }
        Vector3 direction = target.position - transform.position;
        Quaternion lookRotation = Quaternion.LookRotation(direction);
        Vector3 rotation = Quaternion.Lerp(transform.rotation, lookRotation, Time.deltaTime * 10f).eulerAngles;
        transform.rotation = Quaternion.Euler(0f, rotation.y, 0f);

        if (fireCountdown <= 0f) {
            Shoot();
            fireCountdown = 1f / fireRate;
        }
        fireCountdown -= Time.deltaTime;
    }

    void Shoot () {
        GameObject bulletGO = (GameObject)Instantiate(bulletPrefab, transform.position, transform.rotation);
        Bullet bullet = bulletGO.GetComponent<Bullet>();
        if (bullet != null) {
            bullet.Seek(target);
        }
    }

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

这个代码会在每0.5秒内搜索最近的敌人,并将其设为目标。如果目标在射程范围内,就会朝着它开火。在开火时,它会创建一个子弹对象并将其发射到目标处。这个代码示例只是一个简单的示例,您可以根据您的需求进行修改和优化

unity开发塔防游戏的集火功能代码

原文地址: http://www.cveoy.top/t/topic/fEeQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录