子弹不毁
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)
}
}
}
我希望我的子弹在 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)
}
}
}