子弹不毁

Bullet not destroying

我希望我的子弹在 OnTrigger 时被销毁,但它没有被销毁,但 Debug.Log 工作正常。我已经尝试了一切,例如重写脚本,替换它并一遍又一遍地附加它。有人可以帮助我吗?

这是我的代码:

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

public class Enemy : MonoBehaviour
{
    public GameObject Bullet;
    
    void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("Bullet"))
        {
            Debug.Log("I die"); 
            Destroy(gameObject);
        }
    }
}

如果您想销毁子弹,您应该将子弹对象作为参数传递给函数 Destroy(),但您传递的是敌人对象。

用 Destroy(Bullet) 替换 Destory(gameObject)。

或者,如果你想销毁被触发的子弹,请将其替换为:Destroy(collision.gameObject)

您正在破坏 Enemy 游戏对象。要同时销毁子弹,请尝试以下代码:

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

public class Enemy : MonoBehaviour
{
    public GameObject Bullet;

    void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("Bullet"))
        {
            Debug.Log("I die");
            Destroy(gameObject); // destroying self object (Enemy Object)
            Destroy(collision.gameObject); // destroying collided object (Bullet Object)
        }
    }
}