因此,我正在制作一款游戏,在其中您可以躲避敌人并触发某些对敌人有各种效果的道具。其中之一是炸弹,在玩家与炸弹碰撞后4秒钟内爆炸,炸毁其半径内的所有敌人。
我想我已经弄清楚了一切,除了实际摧毁敌人。我觉得解决方案是如此明显,但我从未学习过该方法。在这一点上,炸弹在爆炸时被摧毁,而不是在我预期的敌人身上被摧毁,因为Destroy(other.gameObject)在这种情况下不起作用!我该怎么办?
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
Debug.Log("player");
StartCoroutine(BombCountdownRoutine());
}
}
IEnumerator BombCountdownRoutine()
{
bombAudio.PlayOneShot(bombSound, 0.8f);
yield return new WaitForSeconds(4);
Collider[] hitColliders = Physics.OverlapSphere(transform.position, 10);
for (int i = 0; i < hitColliders.Length; i++)
{
if (hitColliders[i].gameObject.tag == "Enemy")
{
Destroy(gameObject);
}
}
}