100์ด๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ํ๋ค๊ณ ํ์ ๋ ์์ ๋๋ฅผ UI์ ํํํ๊ธฐ ์ํด 1์ด๋ง๋ค ์ผ๋งํผ ํ๋์ง ํํํ๋ ค๊ณ ํ๋ฉด
private async UniTaskVoid RepeatAsync(){
for (int i = 0; i < 100; ++i){
await UniTask.Delay(TimeSpan.FromSeconds(1));
//UI ์ ๋ฐ์ดํธ
}
}
์ด๊ฑธ ์๊ฐํ๋๋ฐย ์ด ํจ์๊ฐ 100์ด ํ์ ๋๋ ๊ฑฐ๋ผ๊ณ ๊ธฐ๋ํ์ง๋งย ์ค์์ ์ ๊ทธ๋ ์์ 1์ด ํ์ ๋ฐ๋ก ์คํ๋๋ ๊ฒ ์๋๋๊น
๊ทธ๋์ ๋์จ ๋ฐฉ๋ฒ์ด Time.deltaTime์ ์ด์ฉํ๋ ๊ฑด๋ฐ ์ด ๋ฐฉ๋ฒ ๋ง๊ณ ๋ ์ข์ ๋ฐฉ๋ฒ ์์?
์๊ฐํ ๋ฐฉ๋ฒ์ ์ด๊ฑฐ์ ๋์์
private async UniTaskVoid EndRepeatAsync(){
await UniTask.Delay(TimeSpan.FromSeconds(100));
//UI 100%๋ก ์ ๋ฐ์ดํธ
}
์ด ๋ฉ์๋๋ฅผ ์คํํ๋ ๊ฑด๋ฐ ๋ณ ์ฐจ์ด๊ฐ ์์๊น ์ถ์
์ด์งํผ waitforseconds ์ด๋ฐ๊ฒ ํ๋ ์๋ง๋ค ์ฒดํฌํด์ ํ์ฌ ์์ ์ ์๊ฐ์ด ์ง๋ฌ๋์ง ์ฒดํฌํ๋๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฅ Time.deltatime์ ๊ณ์ ๋ํ๋ ํ์ด๋จธ๋ก 100์ด๊ฐ ์ง๋ฌ๋์ง ์ฒดํฌํด์ค๋ ๋ฌด๋ฐฉํ๊ณ ์๋๋ฉด ๊ทธ๋ฅ delay(100์ด) ์๋ ๊ฒ ์ค๋ ์๊ด์ ์์๊ฑฐ๋ผ ์๊ฐํจ. ๋ค๋ง, for๋ฌธ์์ 1์ด์ฉ 100๋ฒ ๋๊ธฐ์ํค๋๊ฑด ํ๋ ์๋๋์ด ์๊ธฐ๊ฑฐ๋ ํ ์๋ก ์ค์ฐจ๊ฐ ์๊ธธํ ๋ ํผํด์ผ ํ ํ ๊ณ . ๊ฒฐ๋ก ์ ์ผ๋ก ์์ ์งํ๋๋ UI๋ ๋ถ๋ฆฌ์ํค๋๊ฒ ์ข๋ค๊ณ ์๊ฐํจ. ์งํ๋๋ ๋งค ํ๋ ์๋ง๋ค ์งํ๋๋ฅผ ๊ฐฑ์ ํ๊ณ UI๋ ๋จ์ํ ์งํ๋๋ฅผ ๋งคํ๋ ์์ด๋ 1์ด๋ 5์ด๋ ๊ฐ๊ฒฉ์ผ๋ก ๋ํ๋ด๊ธฐ๋ง ํ๋๊ฒ ๋ง์ง ์๋ ์๊ฐํจ.
MVP์ธ๊ฐ MVC์ธ๊ฐ ํ๋ ๊ทธ๊ฑฐ๊ฐ ๋ง๋ค๊ณ ๋ด
์ ํ 1์ด๋ง๋ค ์ฒดํฌํ๋ ๋ฐฉ์์ ๊ฑฐ์ ์์ฐ์ง์์? ์ฝ๋ฐฑ๋ฐ์์ ์ด๋ค๊ฒ ์๋ฃ๋์๊ณ ๊ทธ๊ฒ ์ด ๋์ ๋ชํผ์ผํธ์ธ์ง ํ๋จํด์ ๊ทธ๋ ๊ฐฑ์ ํด์ฃผ๋๊ฒ ๋ณดํต์ธ๊ฑฐ๊ฐ์๋ฐ
์๋ฅผ ๋ค์ด ์น๋ฃ๋ฅผ ์ํด ๋ถ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ถ๋๋ฅผ ๊ฐ์ ๋ ์น๋ฃ์ค...ํ๋ฉด์ UI ๋ฐ๋ฅผ ๋์ฐ๊ณ ์ถ์ ์์ฐ์ค๋ฌ์ฐ๋ ค๋ฉด ์๊ฐ์ ์งง๊ฒ์งง๊ฒ ์๋ผ์ UI๋ฅผ ์์ฃผ ๊ฐฑ์ ํด์ค์ผ ํ๋๊ฐ... ๋งํ ๊ฒ์ฒ๋ผ ํ๋ ๊ฑด ์ด์ ์ผ ๋ญํฐ๊ธฐ๊ฐ ์ ํด์ ธ ์์ ๋? ๋ฆฌ์์ค ๋งค๋์ ์์ ๋ฆฌ์์ค๋ค ๋ญํ๊ธฐ ๋จ์๋ก ์ผ๋ง๋ ๋ค์ด๋ฐ์๋๊ฐ๋ฅผ ์ฝ๋ฐฑ์ผ๋ก ์ฃผ๊ณ
์ ๊ทธ๋ฐ๊ฑฐ๋ฉด ์ถ๋ ฅํ ๋ ์ค์ฐจ ๊ณ์ฐํด์ํด์ฃผ๋ฉด๋ ๊ฑฐ๊ฐ์๋ฐ private float elapsedTime = 0.0f;void Update() { elapsedTime += Time.deltaTime; if (elapsedTime >= 1.0f) { elapsedTime -= 1.0f; }}๋๊ฐ ์ด๋ฐ๋๋? ํ์ฌ ํ๋ ์๋ ์ดํธ๊ฐ ์ด๋ป๊ฒ๋ ์ง ๋ชจ๋ฅด๋๊น ๋งคํ๋ ์ ์ฒดํฌํด์ผ๋ ๊ฑฐ๊ฐ๊ธดํ๋ฐ
1์ด๋์ด์ 2์ด 3์ด ์ด๋ ๊ฒ๋ ๋๋ ์คํ์์์ ํ๋ฒ์ ๋ฐ์ํ๋ฉด๋ ๊ฑฐ๊ฐ์ผ
์ฌ์ค ํ์คํ์ง์...์