示例#1
0
    void Boom()
    {
        if (!Input.GetButton("Fire2"))
        {
            return;
        }
        if (isBoomTime)
        {
            return;
        }
        if (boom == 0)
        {
            return;
        }

        boom--;
        isBoomTime = true;
        gameManager.UpdateBoomIcon(boom);

        //Effect Visible
        boomEffect.SetActive(true);
        Invoke("OffBoomEffect", 4f);

        //Remove Enermy
        //FindGameGobject s WithTag => 게임 내에 태그를 가진 오브젝트 들을불러오는 함수

        //GameObject[] enermyArr = GameObject.FindGameObjectsWithTag("Enermy");
        // find 계열 함수는 성능하락을 유발

        GameObject[] enemiesL = objectManager.GetPool("EnemyL");
        GameObject[] enemiesM = objectManager.GetPool("EnemyM");
        GameObject[] enemiesS = objectManager.GetPool("EnemyS");

        for (int i = 0; i < enemiesL.Length; i++)
        {
            /*Enermy eneLogic = enermyArr[i].GetComponent<Enermy>();
             * eneLogic.OnHit(1000);*/
            if (enemiesL[i].activeSelf)
            {
                Enermy eneLogic = enemiesL[i].GetComponent <Enermy>();
                eneLogic.OnHit(1000);
            }
        }
        for (int i = 0; i < enemiesM.Length; i++)
        {
            if (enemiesM[i].activeSelf)
            {
                Enermy eneLogic = enemiesM[i].GetComponent <Enermy>();
                eneLogic.OnHit(1000);
            }
            //Enermy eneLogic = enermyArr[i].GetComponent<Enermy>();
            //eneLogic.OnHit(1000);
        }
        for (int i = 0; i < enemiesS.Length; i++)
        {
            if (enemiesS[i].activeSelf)
            {
                Enermy eneLogic = enemiesS[i].GetComponent <Enermy>();
                eneLogic.OnHit(1000);
            }
            //Enermy eneLogic = enermyArr[i].GetComponent<Enermy>();
            //eneLogic.OnHit(1000);
        }

        //Remove Bullet
        //GameObject[] bullets = GameObject.FindGameObjectsWithTag("EnermyBullet");

        GameObject[] bulletsA = objectManager.GetPool("BulletEnemyA");
        GameObject[] bulletsB = objectManager.GetPool("BulletEnemyB");

        for (int i = 0; i < bulletsA.Length; i++)
        {
            if (bulletsA[i].activeSelf)
            {
                bulletsA[i].SetActive(false);
            }
            //Destroy(bullets[i]);
        }
        for (int i = 0; i < bulletsB.Length; i++)
        {
            if (bulletsB[i].activeSelf)
            {
                bulletsB[i].SetActive(false);
            }
            //Destroy(bullets[i]);
        }
    }