Unity 3D射击并消灭敌人无效

杰布里奇特

我有一个使用武器射击和消灭敌人的玩家。我有一把枪的代码:

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

public class Gun : MonoBehaviour {

    float bulletSpeed = 60;
    public GameObject bullet;

void Fire(){
  GameObject tempBullet = Instantiate (bullet, transform.position, transform.rotation) as GameObject;
  Rigidbody tempRigidBodyBullet = tempBullet.GetComponent<Rigidbody>();
  tempRigidBodyBullet.AddForce(tempRigidBodyBullet.transform.forward * bulletSpeed);
  Destroy(tempBullet, 5f);
}


    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
          Fire();
          
        }
    }
}

和子弹的代码:

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

public class Bullet : MonoBehaviour
{

 private void OnTriggerEnter(Collider other)
 {
 if (other.tag == "Enemy")

    {
      Destroy(gameObject);
    }
  }
}

即使我的敌人被标记为“敌人”并且触发了撞机盒,它也不会消失。子弹预制体具有刚体和球形对撞机。请帮忙 :)

雨果

您是在告诉子弹要摧毁自己。你可能想

private void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Enemy"))  
    {
        // Destroy the thing tagged enemy, not youself
        Destroy(other.gameObject);

        // Could still destroy the bullet itself as well
        Destroy (gameObject);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章