๋ถ์คํฐ ์ฌ์ฉ ํ ์ฝ๋ฃจํด์ ์ด์ฉํด์ 3์ด์ ํ๋ฒ์ฉ ๊ฒ์ด์ง๊ฐ ์ฐจ๋๋ก ๋ง๋ค๊ณ ์ถ์.
ย private IEnumerator BoosterRecoverCoroutine()
ย ย {
ย ย ย ย YieldInstruction wait = new WaitForSeconds(3);
ย ย ย ย while (isBoosterRecovering) //๋ถ์คํฐ ์ฌ์ฉํ true๋ก ๋ฐ๋
ย ย ย ย {
ย ย ย ย ย ย yield return wait;ย
ย ย ย ย ย ย currentBoosterLeft += 1;
ย ย ย ย ย ย if (currentBoosterLeft >= maxBoosterCount)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย currentBoosterLeft = maxBoosterCount;
ย ย ย ย ย ย ย ย isBoosterRecovering = false;
ย ย ย ย ย ย }
ย ย ย ย }
ย ย }
์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์ง๋ดค๋๋ฐ ๋ฌธ์ ๋ 3์ด์ ํ๋ฒ์ฉ ์ฐจ๋๊ฒ ์๋๋ผ ๊ฑฐ์ 1์ด๋ง์ ๋ค ์ฐจ๋ฒ๋ฆผ..
์ ์ด๋ฐ๊ฑฐ์?ย
์ฝ๋ ์์ฒด์๋ ๋ฌธ์ ๊ฐ ์์ด๋ณด์ด๋๋ฐ, ํน์ ๋ถ์คํฐ๋๊ฒ Time.timeScale ๊ฑด๋๋ฆฌ๋ ๊ธฐ๋ฅ์ด์ผ?
์๋จ rigidbody ๊ฑด๋๋ฆฌ๋๊ฑฐ์์
๋ณด๋๊น startcoroutine์ Update๋ fixedUpdate์์ ๊ณ์ ๋๋ ค์ฃผ๋ ๊ฒ ๊ฐ์๋ฐ? ๊ทธ๋ฌ๋๊น ์ฝ๋ฃจํด์ด ์ฌ๋ฌ ๊ฐ ์คํ๋ผ์ ๊ฐ๊ฐ ๋ถ์คํฐ๋ฅผ ์ฌ๋ฆฌ๋๊น ์์๊ฐ์ ์ฐจ์ค๋ฅด๋๊ฑฐ๊ณ
์ฐจ๋ผ๋ฆฌ ๊ทธ๋ฅ while์ ์กฐ๊ฑด์ true๋ก ๋ง๋ค๊ณ , ๊ทธ ์์ if(isBoosterRecovering)์กฐ๊ฑด์ ๋ฃ์ ์ํ๋ก ์์ํ ๋ ํ ๋ฒ๋ง ์คํํด
์ค ์ด๊ฒ ๋ง๋๋ฏ ๋ฐ๊ฟ๋ณผ๊ป์
ํด๊ฒฐํจ ๊ฐ์ฌ์ฉ ใ ใ