time.scale = 0 ํ๋ฉด ๋ชจ๋ ์๊ฐ์ด ๋ฉ์ถ๋๋ฐ
๋๋ง ์์ง์ด๊ฒ ํ ์ ์์?
ํ๊ณ ์ถ์๊ฒ ํ์ด๊ธฐ ์ธ๋. ๋ชจ๋ ์๊ฐ์ด ๋ฉ์ถ๊ณ ๋๋ง ๋์์ ์ทจํํ ๋ฐ์ฌ
ํ๊ณ ์ถ์๋ฐ
๋ง์ฝ ์๊ฐ์ ์ง๊ฐ ์๋๋ฉด ์ด๋ฐ๊ฑฐ ์ด๋ป๊ฒ ๊ตฌํํ๋ฉด ๋ ๊น?
timescale์ ์ฉ์๋ผ๋ deltatime๋ฐ๋ก์์
๊ทธ๊ฒ ๋ญ์? ๋ญ๋ผ๊ณ ๊ฒ์ํ๋ฉด ๋ผ?
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์ฃผ์ธ๊ณต ์คํฌ๋ฆฝํธ์ Timescale ์ฃผ๋๊น ๋ค๋ฅธ์ ๋ค๋ ๋ค ๋จน๋๋ฐ? ๋ฐ๋ก ์ ์ฉํ๋ผ๋๊ฒ ๋ฌด์จ ๋ง์ธ์ง ๋ง ๋ชจ๋ฅด๊ฒ ๋ค
์ด๋ํจ์๋ฅผ ์์ง์
Time.timeScale ์ฐ์ง๋ง๊ณ CharacterTimeScale ๋ฐ๋ก ๋ณ์ ๋ง๋ ๋ค์์ ๊ทธ๊ฑธ Time.deltaTime์ ๊ณฑํด์ ์ฐ๋ฉด ๋์์. Vector3 velocity = direction * Time.deltaTime; ์ด๋ ๊ฒ ์ฐ์ง๋ง๊ณ float objectTimeScale = 0.2f; ๋ฐ๋ก ํ์์ค์ผ์ผ ๋ณ์๋ฅผ ๋ง๋ค๊ณ float customDeltaTime = objectTimeScale * Time.deltaTime; ์๋ก์ด ๋ธํํ์์ ๋ง๋ค์ด์ velocity = direction * customDeltaTime; ๋ธํํ์ ๋์ ์ ์๋ก ๋ง๋ ๋ธํํ์์ ์ฐ๋ฉด ๋จ.
๋ง์ฝ ์ Time.timeScale์ ์จ์ผ๋๋ค๋ฉด Time.realtimeSinceStartup์ ์ด์ฉํด์ deltaTime์ ๋ฐ๋ก ๊ณ์ฐํด์ ์ฃผ์ธ๊ณต ์คํฌ๋ฆฝํธ์ ๋ฃ์ด์ค์ผ ๋จ. ์ด์ ๋ํ๊ฑด ์ ๋ํฐ ๋งค๋ด์ผ์ ์ฝ์ด๋ณด๋ฉด ๋์ด. ๋งํฌ :
https://docs.unity3d.com/kr/530/ScriptReference/Time-realtimeSinceStartup.html
https://docs.unity3d.com/kr/530/ScriptReference/Time-unscaledTime.html