ย private IEnumerator FireDelay()
ย ย {
ย ย ย ย Debug.Log("์ฝ๋ฃจํด");
ย ย ย ย yield return new WaitForSeconds(this.fireDelay);
ย ย }
ํ๊ณ
์ด์ ์ ๋๋ง๋คย StartCoroutine(FireDelay()); ๋ก ํธ์ถํ๋๋ฐ ์ฝ๋ฃจํด์ด ์๋์ํ๊ณ ๋ฐ๋ก ๋ค์๊ป ์์๋จ
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
ใ ใ this.bulletPool[curBulletIndex].gameObject.SetActive(true); StartCoroutine(FireDelay()); if (this.curBulletIndex <= this.bulletMaxCount) { this.curBulletIndex++; }
์ด๋ฐ์์ผ๋ก ํน์ ํธ์ถ๋๊ณ ์ฝ๋ฃจํด์ ๋ฐ๋ก ๋์๊ฐ๊ณ ์๋๋ก ๋ฐ๋ก ์งํ๋๋
ใ ใ ๋ฉํฐ์ฐ๋ ๋ฉ์ด๋ ๋น์ทํ๊ฒ ์๋๋
ํ๋ bool๊ฐ ๋ฃ์ด์ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋ง๋ค๋ฉด ๋ ๋ป?
์ฝ๋ฃจํด ๊ฒ์๋ถํฐ ๋ค์ ํ๊ณ ์๋ด.... ์์ ์ฝ๋ ์ด๋ป๊ฒ ์ฐ๋์ง ์ ์ฌํ ๋ณด๊ณ
if๋ฌธ์ ์ฝ๋ฃจํด ์คํํ ๋ค์์ ์คํํ๊ณ ์ถ๋ค๋๊ฑฐ??? ๊ทธ๋ผ FireDelay()์์ yield return๋ฌธ์ฅ ๋ฐ์ ๋ฃ๋๊ฒ ๋ง์ง ์์๊น..
ํ๋ก์์ ธ๋จ์๋ก ๋๋ฒ๊น ํ ๋ ์ฝ๋ฃจํด ์๋๊ณ ๋ฐ๋ก ๋์ด๊ฐ๋ค๋๊ฑฐ์? ์๋๋ฉด ์ฝ๋ฃจํด ์์ฒด๊ฐ ์คํ์ ์ํ๋ค๋ ๋ง์? ์ ์๋ฉด ์ฝ๋ฃจํด ๋ด๋ถ์ ์ค๋จ์ ๊ฑธ๊ณ ์คํํ๋ฉด๋๊ณ ํ์๋ฉด bulletPool ๋ฉ๋ชจ๋ฆฌ ๊ด๋ จ ์ค๋ฅ์ผ์๋์์ ์ธ๋ฑ์ค ๋ง๋์ง ํ์ธํด๋ณด๊ณ