我希望我的子彈在 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);
}
}
}
uj5u.com熱心網友回復:
你正在破壞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)
}
}
}
uj5u.com熱心網友回復:
如果你想摧毀子彈,你應該將子彈物件作為引數傳遞給函式 Destroy(),但你傳遞的是敵人的物件。
用 Destroy(Bullet) 替換 Destory(gameObject)。
或者,如果您想銷毀被觸發的子彈,請將其替換為:Destroy(collision.gameObject)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/362701.html
上一篇:從另一個類呼叫受保護的變數
