ย ย Queue<float> _qTime = new Queue<float>();
ย ย WaitForSeconds ws1 = new WaitForSeconds(0.07f);
ย ย WaitForSeconds ws2 = new WaitForSeconds(0.2f);
ย ย WaitForSeconds ws3 = new WaitForSeconds(0.03f);
ย ย IEnumerator Start()
ย ย {
ย ย ย ย //์ฝ๋ฃจํด์ ๋ค๋ฅธ ๊ฐ๊ฒฉ์ผ๋ก 5ํ ์คํ์ํจ๋ค.
ย ย ย ย //0.07f๋ฅผ ๋ฃ์ด๋ย ์ค์ ๋ก 0.08~0.09๊น์ง ์์ฌ์์ฌํ๊ฒ ๋์ฌ ์ ์์. print๋ฌธ์ด ๋ฌด๊ฑฐ์์ ๊ทธ๋ด์๋ ์๊ณ ์๋ํฐ์ ๋ฌธ์ ์ผ์๋ ์์๋ฏ.
ย ย ย ย RunCoroutine(1);
ย ย ย ย yield return ws1; //์ฒซ๋ฒ์งธ ์ง์ฐ์๊ฐ์ ๋ฌด์จ ์ด์ ์์์ธ์ง 0.07f ๋ณด๋ค ์ค๋ ๊ฑธ๋ฆฐ๋ค. ๊ทธ๋์ ์ฌ๊ธฐ์ 0.07์ด๋ฅผ ๋๊ฒจ์ ์คํจํจ.
ย ย ย ย RunCoroutine(2);
ย ย ย ย yield return ws1; //๋๋ฒ์งธ๋ถํฐ๋ ์ ์์ ์ผ๋ก ๋ฉ์ถ๋ ๊ฒ์ ์์ํ์ง๋ง ํ๊ฒฝ์ ๋ฐ๋ผ ๊ทธ ์ด์์ ์๊ฐ ์ง์ฐ์ด ์์ ์ ์์ console์ฐฝ์์ ๋ ์ฝ๋ฃจํด ์ฌ์ด์ ์คํ ์๊ฐ์ฐจ๋ฅผ ํ์ธํ ์ ์์.
ย ย ย ย RunCoroutine(3);
ย ย ย ย yield return ws2; //์ธ๋ฒ์งธ๋ ์๋์ ์ผ๋ก 0.2f์ ์๊ฐ์ฐจ๋ฅผ ์ค์ ์ ์ง์ํค์ง ์๋๋ค.
ย ย ย ย RunCoroutine(4);
ย ย ย ย yield return ws3; //๋ค๋ฒ์จฐ๋ 0.03f๋ก ๊ฑฐ์ ์คํจ๊ฐ ์ผ์ด๋์ง ์์ ์์ค์ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ํ ์คํธ ํ๋ค.
ย ย ย ย RunCoroutine(5);
ย ย }
ย ย void RunCoroutine(int no)
ย ย {
ย ย ย ย StartCoroutine("Repeat", no);
ย ย }
ย ย IEnumerator Repeat(int x)
ย ย {
ย ย ย ย //์ฝ๋ฃจํด์ด ์คํ๋ ๋๋ง๋ค _qTime์ ํ์ฌ ์คํ ์๊ฐ์ ์๊ฐ์ ์ ๋ ฅ, 2๊ฐ๊ฐ ์์ด๋ฉด ์ด์ ์ฝ๋ฃจํด ์คํ์ ์๊ฐ๊ณผ ํ์ฌ ์คํ์ ์๊ฐ 2๊ฐ๊ฐ ๋ชจ์ฌ์๋ค๋ ๋ป์ด๋๊น ๊ทธ ๋ ์ฌ์ด์ ๊ฐ๊ฒฉ์ ๊ตฌํ๋ค.
ย ย ย ย _qTime.Enqueue(Time.realtimeSinceStartup); //์คํ ์๊ฐ์ time.realtime์ _qTime์ ๋ฃ์.
ย ย ย ย if (_qTime.Count >ย 1) //์ฒ์ ํ๋ฒ๋ง ์คํ๋์์ ๋์ ๋น๊ต๊ฐ ์๋ฏธ ์์ผ๋ ๋๋ฒ์งธ๋ถํฐ..
ย ย ย ย {
ย ย ย ย ย ย float t = Time.realtimeSinceStartup - _qTime.Dequeue(); //ํ์ฌ ์๊ฐ๊ณผ ์ง์ ์ฝ๋ฃจํด ์๊ฐ์ ๊ฐ๊ฒฉ.ย
ย ย ย ย ย ย print(x + "ย " + t);
ย ย ย ย ย ย if (t < 0.1f) //๋ ์ฝ๋ฃจํด์ ์คํ ๊ฐ๊ฒฉ์ด 0.1์ด ๋ฏธ๋ง์ด๋ฉด ์ฝ๋ฃจํด์ ์ข ๋ฃ์ํจ๋ค.
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย print(x + " stop " + _qTime.Count);ย
ย ย ย ย ย ย ย ย StopAll();
ย ย ย ย ย ย ย ย yield break;
ย ย ย ย ย ย }
ย ย ย ย }
ย ย ย ย while (true) // ์ด ์ฝ๋ฃจํด์ ๋ฉ์ธ ์ฝ๋๊ฐ ๋ค์ด๊ฐ ๋ถ๋ถ.
ย ย ย ย {
ย ย ย ย ย ย print("running");
ย ย ย ย ย ย yield return null;
ย ย ย ย }
ย ย }
ย ย void StopAll()
ย ย {
ย ย ย ย StopCoroutine("Repeat");
ย ย }
๋ฏธ์ ๋งค๋ฒ ์์ ํ๋ฉด์๋ย ์ค๋ฅ๋๋ฌธ์ ์๋์ด ์๋๋ ์ฝ๋๋ฅผ ์ฌ๋ฆฌ๊ณ ์์๋ค.. ใ ใ ย ์ง์ ์ฝ๋๋ ๊ฐ์ด 0์ธ์ง ํ์ธํ๋ ๊ฑธ ๋นผ๋จน๊ธฐ๋ ํ๊ณ ์๋ง์ง์ฐฝ์ด์์
์ด๋ฒ์ ์ ๋ง ๊ทธ๋ฅ ๋๋ฒ๊ทธ๊น์ง ๋จ๊ฒจ์ ๋ฐฉ๊ธ ์คํํ ์ฝ๋ ๊ทธ๋๋ก ์ฌ๋ฆฌ๋ย ํ๋ฒ๋ง ๋ ํ์ธํด ์ค.
์ฒ์ ์ฝ๋๋ฅผ ์ง๊ณ ํ ์คํธ ํ ๋ ๋ฌธ์ ๊ฐ ๋์๋ ๊ฑด ์ฒซ๋ฒ์งธย ์ฝ๋ฃจํด์ ์คํํ๊ณ yield return new waitforseconds(0.07f); ์ด๋ ๊ฒ ์๊ฐ ์ง์ฐ์ ์คฌ์ ๋ ์ค์ ๋ก๋ 0.07์ด๋ณด๋ค ํจ์ฌ ๊ธด ์๊ฐ์ด ์ง๋ ์ ์๋ค๋ ๊ฑธ ๋ชฐ๋ผ์์์ ๊ทธ๋์ ์๊พธ 0.07์ด ๊ฐ๊ฒฉ์ผ๋กย ๋ ์ฝ๋ฃจํด์ ์คํํด๋ ์ค์ ์๊ฐ์ ๊ทธ ์ด์ ๊ฑธ๋ ค์ ์ค๋จ์ ์ ์ํค๊ณ ์๋๋ผ. ๋ฏธ๋ฆฌ ์บ์๋ฅผ ํด๋ ์ฒ์ ํ๋ฒ์ ์๊ฐ์ด ๊ฝค ๊ธธ๊ฒ ๊ฑธ๋ฆฌ๋๋ฐย ์ด๋ป๊ฒ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋์ง๋ ๋ชจ๋ฅด๊ฒ ์.
ํ์ง๋ง ์ด์ฐจํผ ์ค์ ๊ฒ์์์ ๊ทธ๋ฐ ์ผ์ด ์ผ์ด๋ ๋ฆฌ๊ฐ ์์ํ ๋ ๊ฐ ์ฝ๋ฃจํด์ 0.07์ด, 0.07์ด, 0.2์ด, 0.03์ด ๊ฐ๊ฒฉ์ผ๋ก ์คํ์ํค๊ณ ๋ ์ฌ์ด ์คํ ๊ฐ๊ฒฉ์ด 0.1์ด ์ดํ๋ฉด ์ค๋จ๋๋์ง ํ์ธ์ ํ์ด. ๊ฒฐ๊ณผ๋ 3, 5๋ฒ์งธ ์ฝ๋ฃจํด์ด ์คํ๋์์ ๋ ๋ชจ๋ ์ฝ๋ฃจํด์ด ์ ์งํจ.
์ด ์ฝ๋๋ก ํ๋ฒ๋ง ๋ ํ์ธ ๋ถํํ ๊ฒ. ์์ ์ฝ๋๋ ์ ๋ง ๋ฏธ์ ใ ใ
๊ทธ์น ์ ๋ ๊ฒ ๋๊ฐ๋ฉด ๋๋๋ฐ ๊ฐ์ ์ด๋ฌ์ - dc App
i++ ๋ญ์๊ธฐ๋ก ๋์ด๊ฐ์ผํ ๋ฏ.. ๊ฑฐ๊ธฐ์ ๋ถํฐ ์ด๋ ค์์ ธ์ ๋ ์ฌ๊ธฐ์ ๋น ์ง๋ค ๋ค๋ฅผ ๋งก๊ธฐ๊ณ ๊ฐ๋๋ค - dc App
์ด.. ํ๋ฒ๋ง ์คํ๋์ด๋ StopAll ๋๋๊ฒ ์๋์ง? ์๋ชป ์ดํดํ๊ณ ์๋๊ฑด๊ฐ
์ ๋ณธ๋ฌธ ์ถ๊ฐ๋๊ฑฐ ๋ณด๋๊น ์ดํด๋์์ด ํ๋ฒ ํด๋ณด๊ฒ ์ด๋ค
๋ฏธ์ ์ด๊ฑฐ ์ ์๋์ง? ใ ใ ๋ 0.1์ด ์ดํ๋ก ํ ์คํธ๋ฅผ ํ ๊ฒ ์๋๋ผ ๋๋ํ๊ฒ 1์ด๋ฅผ ๋๊ณ ํด์ ๋ชฐ๋๋๋ฐ deltatime์ด 0.1์ด๋ณด๋ค ๋ง์ด ๋์ค๋ ๊ฒฝ์ฐ๋ ๊ทธ๋ฅ ๋์ด๊ฐ๋ฒ๋ฆฌ๋ ๋ฌธ์ ๊ฐ ์๋ค
ใ ใ ์๋ง ๊ทธ๋ฌ๋๊ฑฐ ๊ฐ์.. ๊ทผ๋ฐ ๋์ถฉ ์๋ฆฌ๋ ์ดํดํ์ผ๋๊น ํด๊ฒฐ๋ ๊ฒ ๊ฐ์์
์ฝ๋ ๋ค์ ์ง์ ์ฌ๋ ธ์ด. ์ด๊ฒ์ผ๋ก ํ๋ฒ๋ง ๋ ํ์ธํด์ค ใ ใ
์ด๊ฑฐ๋ค ๋๋ ํ๋ ์ฌ๋ ค๋ณผ๋ ๋ด์ค - dc App
๊ฐ๋ ์ฑ ๋์ฌ๋ดค์ด ๋ค์๋ด์ฃผ๋ผ ์ฌ๋ฆด๊ฒ - dc App
๋ค์ค์ด๋ฉด๋ ๊ฑธ ๋ญ์ด๋ฆฌ ์ด๋ ต๊ฒ๊ฐ๋
ใ ใ ํ๊ผฌ ์ฃผ์ ์ ์๋์ฒ ํ๋ค๊ฐ ๋ ๋๋ฌธ์ ๊ณ ์๋ค ๋ต๋ณ๋ ์ ๋ฌ๋ฆฌ๊ณ ๋ ๋ฏธ์ํจ