void Start()
{
ย StartCoroutine(StageClearCheck());
}
IEnumerator StageClearCheck()
ย ย {
ย ย ย ย Debug.Log("dd");
ย ย ย ย yield return new WaitUntil(() => a.Count >= 0 );
ย ย ย ย isGaming = false;
ย ย ย ย isStageClear = false;
ย ย ย ย ย
ย ย ย ย Debug.Log("Clear");
ย ย ย ย ย
ย ย }
์ฒ์์๋ WaitUntil ์์ ์๋ ์กฐ๊ฑด๊ฐ์ด ๋ฌธ์ ์ธ๊ฐ ์ถ์๋๋ฐ ํ ์คํธํด๋ณด๋ ์๋๋๋ผ๊ตฌ์..
์ ์ด๋ฌ๋๊ฑฐ์ฃ ?ย
๋น์ฐํ start()์์ ํ ๋ฒ ํธ์ถํ์ผ๋๊น ํ ๋ฒ๋ง ์๋ํ์ฃ
start์์ ํธ์ถํ๊ณ ๋๋ค์ ์กฐ๊ฑด๊ฐ๋ง ๋ง์ผ๋ฉด ๊ณ์ ํธ์ถ๋๋๊ฑธ๋ก ์๊ณ ์์๋๋ฐ update์์ ํธ์ถํด์ผ ํ๋์?
์ฝ๋ฃจํด์ ํ ๋ฒ ํธ์ถํ๋ค๊ณ ๋ฌดํํ ๋๋ ํจ์๊ฐ ์๋
IEnumerator StageClearCheck() {์ฌ๊ธฐ๋ค ์์ผ๋ฌธwhile(true){ Debug.Log("dd"); yield return new WaitUntil(() => a.Count >= 0 ); isGaming = false; isStageClear = false;Debug.Log("Clear"); } }์์ผ๋ฌธ ์จ๋ฃ์ผ์
๊ฐ์ฌํฉ๋๋ค!!
์์ฑ์๋ ์ด๊ฒ ์ํ๋ ์ฝ๋๋ฉด ๊ทธ๋ฅ update()์์ ๊ตฌํํ์ธ์. yield return new ๊ตฌ๋ฌธ์ if (a.count>=0) continue; ๋ก ๋ฐ๊พธ์๊ตฌ์.
WaitUntil์ ์กฐ๊ฑด์ด true๊ฐ ๋ ๋๊น์ง ๊ทธ๋ฅ ๊ธฐ๋ค๋ฆฌ๋ ํจ์์ธ๋ฐ? ๋ฐ๋ณตํ๋ ค๋ฉด while์ ๋ฃ๋๊ฐ ์ฝ๋ฃจํด ์ฌ๊ท์ํค๊ฑฐ๋ ํด์ผ์ง
IEnumerator StageClearCheck() { while(true) { (์๋ ์ฝ๋๋ค) } }
๋ฌดํํ ํ ๋ ค๋ฉด StartCoroutine(StageClearCheck()); ์ ๊ณ์ ํธ์ถ ํ๊ฑฐ๋ ๋ฐ๋ณตํด์ผํจ