如何使炸弹摧毁特定半径内的所有敌人?

时间:2019-11-27 07:43:03

标签: c# unity3d

因此,我正在制作一款游戏,在其中您可以躲避敌人并触发某些对敌人有各种效果的道具。其中之一是炸弹,在玩家与炸弹碰撞后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);
            }
        }
    }

0 个答案:

没有答案