IEnumerator TimeCheck(float second)
{
float start = Time.realtimeSinceStartup;
float elapse = 0f;
while (elapse (๋ํด๋) second)
{
elapse += 0.02f;
yield return new WaitForSeconds(0.02f);
}
Debug.Log("Coroutine Runtime: " + (Time.realtimeSinceStartup - start).ToString() + " / Given Second: " + second.ToString());
}
์ด๋ฐ์์ผ๋ก ์ธ์๋ก ๋ฐ์ ์ด ๋จ์๋์ ๋์๊ฐ๋ ์ฝ๋ฃจํด์ ๋ง๋ค์๋๋ฐ
์ธ์๋ก ๋ฃ์ second๋ณด๋ค ๋๋ฒ๊ทธ ๋ก๊ทธ์ ๋์ค๋ ๋ฐํ์์ด ๋ ๊ธธ๊ฒ ๋์ด... ์์ด๋ฐ๊ฑฐ์?
์๋ฅผ๋ค์ด 0.2๋ฅผ ๋ฃ์ผ๋ฉด 0.3686509๊ฐ ๋ธ... ์ ๋ฃจํ ํ๋๋ฒ๋ ์๋๊ณ ์ด๋ ๊ฒ ๋ ๊ธธ๊ฒ ๋์ด์ง๋๊ฑฐ์?
์ฌ์ง์ด 0.6์ ๋ฃ์ผ๋ฉด 1.0์ด ๋์ด๋ฒ๋ฆผ
while๋ฌธ ์กฐ๊ฑด๋ถ๊ฐ ๊นจ์ง๋ค... <์ผ
https://docs.unity3d.com/kr/530/Manual/ExecutionOrder.html
๋ผ์ดํ
์ฌ์ดํด์ ๋ณด๋ฉด wait for second ๋ update ์์ ์ฒ๋ฆฌ ๋จ.
์ฆ wait for second (0) ์ผ๋ก ํธ์ถํด๋ delta time ์ด ํ์ ํธ์ถ ๋จ.
๊ทธ๋ฅ wait for second (second) ํ๋ฉด ์๋จ?
์ ํ์ด๋ ์์ ํ ๋ ค๊ณ ๊ทธ๋ฌ๋๋ฐ ๋ค๋ฅธ๋ฐฉ๋ฒ์ ์๊ฐํด๋ด์ผ๊ฒ ๊ตฐ์ฌ
wait for second (0) ์ผ๋ก ํ๊ณ elapse ์ delta time ๋ํด์ค
ใณใณ
VSync ๋๋๊น ๊ฑฐ์ ๋น์ทํด์ง๊ฑฐ๋ณด๋ ์ ๋ฐ์ดํธ ์๊ฐ๋ฌธ์ ๊ฐ ๋ง๋๊ฑฐ๊ฐ์ ๊ทผ๋ฐ ์ 0.6์ด ๋ฃ์ผ๋ฉด 1๋ก ๋ปฅํ๊ธฐ๋๋์ง ๋ชจ๋ฅด๊ฒ ๋ค ์ ๋ฐ์ดํธ ์ฌ์ดํด์ด 0.4์ด์ผ๋ฆฐ ์๋๋ฐ
์, 60ํ๋ ์์์ ๋ธํํ์์ด ๋์ถฉ 0.01667์ด๋๊น 0.02์๋์ ํ๋ฒ ์นํ๊ณ ๋ํ๋ ์์ ํ๋ฒ์ฉ elapse๊ฐ 0.02์ฉ ์ฌ๋ผ์ 0.02์ด ๊ธฐ๋ค๋ฆฐ๋ค๊ณ ์๊ฐํ๊ฒ ์ค์ ๋ก 0.03334์ด๊ฐ ๋๊ฑด๊ฐ
ใ ใ ๋ง์
์ฌ๋ฌ๋ถ์ ๋๋ถ์ ํด๊ฒฐํจ ๊ฐ๊ฟ