ย IEnumerator Dash(int coolTime)
ย ย {
ย ย ย ย for (float i = coolTime; i >= 0; i-= 0.01f)
ย ย ย ย {
ย ย ย ย ย ย DashImage.fillAmount = i/coolTime;
ย ย ย ย ย ย yield return new WaitForSeconds(0.01f);
ย ย ย ย }
ย ย ย ย yield return null;
ย ย }
์ด๋ฐ ์์ผ๋ก ํ๊ณ ์ถ์๋ฐ ์ด๋ฌ๋ฉด ๋ถํ๊ฐ ๋ง์ด ๊ฑธ๋ฆฌ๋?ย
๋ง์ฝ ํ๋ค๋ฉด ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ํ๋๊ฑธ ์ถ์ฒํจ?
์ ๋ฐ์ดํธ์์ ์ฟจํ์ -= ํ์.๋ธํํ์ ํ๋๊ฒ ์ข์๋ณด์ - dc App
๊ฐ์ธ UI์ ์๊ฐ์ ์ธ ์์๋ ๋ถ๋ด ๊ฐ์๊ฑฐ ์ ๊ฒฝ์ฐ์ง ๋ง์ . ๊ทธ๋ฆฌ๊ณ 0.01์ด๋ฉด WaitForFixedUpdate๋ ๋ณ ์ฐจ์ด๋ ์์. ์๋ง 60ํ๋ ์ ๊ธฐ์ค ํ๋ ์๋น 0.016์ด ๊ฐ๊ฒฉ์ด๋ผ 0.01์ด ๊ฐ์๊ฑฐ ์ฐ์ง ๋ง์ - dc App
๊ทธ๋ผ ์ด๋ป๊ฒ ํ๋๊ฒ ์ข์๊น 0.1๋ ์ด์ง ๋๊ธฐ๋ ๊ฐ์ด ์์ง์์์๋๋ฐ ์์ ์์น์กฐ์ ์ด ์๋๊ณ time์ผ๋ก ๊ฐ์ผํ๋?
์ด๋ฏธ ๋งํ๋ฏ WaitForFixedUpdate๋ก ์ฐ์ธ์ deltatime๋งํผ ์ฟจํ์์์ ๋นผ๊ณ ํ๊ธฐํ๋ฉด ๋จ - dc App
๋ฐ์ ๊ฐ๋ฅด์ณ์ค ๋๋ก ํด๋ณด๋๊น ๋๊ธดํ๋๋ฐ ๋๊ฐ ์๋ ค์ค๋๋ก๋ ํ๋ฒ ๋์ ํด๋ณผ๊ฒ ๊ณ ๋ง์
๊ทธ ์ฝ๋ฃจํด์ด ์ด๋ป๊ฒ ๋์๊ฐ๋์ง ์ ๋ชจ๋ฅด๋๋ฐ ๋๋ฌด ์งง์ ์๊ฐ์ ์๋ง ์ ํํ ๋ชป ์ฌ๋๊ฑธ๋ก ์๊ณ ์์. ๊ทธ๋์ ์์ ๊ธ ๊ฐ์ ๋ฐฉ์์ผ๋ก ํ๋ฉด ์ค์ฐจ๊ฐ ๊ฝค ์ปค์ง ์๋ ์์. WaitForFixedUpdate๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ๊น๊ณ ์ต๋ ์ฟจํ์์ ์ ์ฅํด๋๊ณ ์งํ์ํฌ ์ฟจํ์์ Time.deltatime์ ๋นผ์ฃผ๊ณ ํ์ฌ์ฟจ/์ต๋์ฟจ์ ํ์ํด์ฃผ๋ฉด ๊น๋ํ๊ฒ ๋ ๊ฑฐ์ - dc App
์ค for ๋ฌธ์ i ๋ฅผ time.deltatime์ฉ ๊ณ์ ๋นผ์ฃผ๊ณ ๋๊ฐ ๊ฐ๋ฅด์ณ์ค๋๋ก ๋ฆฌํด๊ฑฐ๋๊น ์๋์ํ๋ค ๊ณ ๋ง์
์ถ๊ฐ๋ก for๋ฌธ ๋ง๊ณ while๋ฌธ์ด ํจ์ฌ ํธํ ๊ฑฐ์ while(cooltime > 0) ์ด๊ฑฐ ํ์ค์ด๋ฉด ์๋๋ฐ๋ณต + ํ์ถ๊น์ง - dc App
๊ฑ yield return null ํ์
๊ทธ๋ฆฌ๊ณ yield return new WaitForSeconds(0.01f); ์ด๋ ๊ฒ ํ๋๊ฒ๋ณด๋จ ์์์ ๋ณ์์ WaitForSeconds delay = new WaitForSeconds(0.01f);
์ด๋ฐ์์ผ๋ก ์บ์ฑํด์ ์ฐ์ ๊ทผ๋ฐ ์ฌ๊ธฐ ์ํฐ ๋๋ฅด๋ฉด ๋ฐ๋ก ๋ฑ๋ก๋๋ฒ๋ฆฌ๋ค
์ค ๊ณ ๋ง์ ๋ด๊ฐ ์์ง ์ฝ๋ฃจํด ๋ค๋ฃจ๋๊ฒ ์ข ๋ฏธ์ํด์ yield return ์ด ์ข ํท๊ฐ๋ฆฌ๋๋ฐ yield return null ๋งํด๋ ์ด๊ฒ ๋์ํ๊ธดํ๋๊ตฌ๋.. ๊ผญ ๊ธฐ๋ค๋ ค์ค์ผํ๋์ค๋ก๋ง ์์์ return ์ ํด๋ ์์ง ๋จ์ ๊ตฌ๋ฌธ์ด ์๋ค๋ฉด ๊ณ์ํด์ ์คํํ๋๊ฑด๊ฐ? ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ฌํํผ ๊ณ ๋ง์ ใ ใ