敌人的射弹没有朝正确的方向飞行?

问题描述

我很难让敌人的弹丸从敌人飞到玩家的位置。当我玩游戏时,敌人的子弹会在屏幕上向一个方向飞舞,而不是向玩家飞。我认为问题可能出在我如何为弹丸预制件分配方向?任何建议将不胜感激。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyController : MonoBehaviour
{
    public float speed;
    public Rigidbody enemyRb;
    [SerializeField] float rateOfFire;
    private GameObject player;
    public GameObject projectilePrefab;
    float nextFireAllowed;
    public bool canFire;
    Transform enemyMuzzle;


    void Awake()
    {
        enemyRb = GetComponent<Rigidbody>();
        player = GameObject.Find("Player");
        enemyMuzzle = transform.Find("EnemyMuzzle");
    }

    void Update()
    {
        //move enemy rigidbody toward player
        Vector3 lookDirection = (player.transform.position - transform.position).normalized;
        enemyRb.AddForce(lookDirection * speed);

        //overallSpeed
        Vector3 horizontalVelocity = enemyRb.velocity;
        horizontalVelocity = new Vector3(enemyRb.velocity.x,enemyRb.velocity.z);

        // turns enemy to look at player
        transform.LookAt(player.transform);

        //launches projectile toward player
        projectilePrefab.transform.Translate(lookDirection * speed * Time.deltaTime);
        Instantiate(projectilePrefab,transform.position,projectilePrefab.transform.rotation);

    }

    public virtual void Fire()
    {

        canFire = false;
        if (Time.time < nextFireAllowed)
            return;
        nextFireAllowed = Time.time + rateOfFire;

        //instantiate the projectile;

        Instantiate(projectilePrefab,enemyMuzzle.position,enemyMuzzle.rotation);

        canFire = true;
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)