while ๋ฌธ์ด 1๋ฒ๋ฐ์ ์คํ์ด ์๋๋๋ฐ...์๋ฐ ์ด๊ฑฐ ์์ด๋ผย
maxTime์ 2๋ก ๋ง์ถค
์๋ฐ ๋๋ค ๋๋ํ์์ ์ข ์๋ ค์ค ์ ๋ฐ
๋ชฐ?๋ฃจ ์ฝ๋ฃจํด ๋๋ฆฌ๋๊ฒ ์ ๊ฑฐ ๋ฌ๋ค๊ฑฐ๋ ๊ทธ๋ฐ๊ฑฐ ์๋?
๊ทธ๊ฒ ๋ฌด์จ ๊ฐ์๋ฆฌ์ผ ์ฝ๋ฃจํด ์ง์ฐ๋ ๋ค๋ฅธ์ฝ๋๋ ์ ํ์๋ ์ํ์ - dc App
this.StartCoroutine()์์ this(์ปดํฌ๋ํธ)๊ฐ ์ฌ๋ผ์ง๋ฉด ์ฝ๋ฃจํด๋ ์ฌ๋ผ์ง ๊ทธ๋์ ํน์ ์ปดํฌ๋ํธ๋ฅผ ๋๊ฑฐ๋ ์ง์ฐ๋ ์ผ์ด ์๋์ง ๋ฌผ์ด๋ณด๋๊ฑฐ์
๋ฌด์จ๋ง์ธ์ง ์ดํดํ์. ๋ฏธ์ฌ์ผ ์์ํ์ ์ ์ฝ๋๊ฐ ์คํ๋๋๋ฐ ์์ง ์ถฉ๋ํด์ ๋ฏธ์ฌ์ผ ๊ฐ์ฒด๋ฅผ ์ง์ฐ๋ ์ฝ๋๋ ์๋ฌด ๊ณณ์๋ ์์ง์ด ๋ฃ์์. ์ฝ๋ฃจํด ์์ฒด๋ while ํ๋ฒ ์คํํ๊ณ ์ดํ ์ฝ๋๋ ์ ์คํ๋จ. - dc App
yield return ์ ๊ฑฐ ๋๋๊ฑฐ์? ์ ๋ ๊ฒ ์จ๋ณธ์ ์ด ์์ด์. ์๊ฐ ๊ฐ ์์ผ๋ฉด return ์ผ๋ก ๋ฒ์ด๋๊ฑฐ ์๋๊ฐ? ์๋๋ฉด interval ๊ฐ์ด ์ด์ํ๋ค๊ฑฐ๋
๋ค์ ํ๋ ์๊น์ง ๊ธฐ๋ค๋ฆผ
์ yield return null์ ์ฐ๋ฉด ๋ค์ ํ๋ ์๊น์ง ๊ธฐ๋ค๋ฆฌ๋๊ฒจ? ์ฒ์ ์์๋ค. ํญ์ ์๊ฐ ๊ฐ ๋ถ์ฌ์ ์ผ๋๋ฐ.
์ ๊ฑฐ ์๊ฐํด๋ณด๋๊น ์์ฒญ ์ข์๊ฑฐ๋ค. ๋ค์๋ถํฐ ์จ๋จน์ด์ผ์ง.
์ฏํ ๋ชจ๋ฅด๋ฉด ๋ต๊ธ ๊ทธ๋ง๋ฌ์! - dc App
์ฐ๋ฆฌ๊ฐ ์ผ์ผ ๋๊ธ ๋ฌ์์ค์ผ ๊ณ ์๊ฐ ์์ ์ด๊ฒ๋ ๋ชจ๋ฅด๋ค ํ๋ฉด์ ์๋ ค์ฃผ๋๊ฑฐ์ผ. ์ข ํ๋ ์ ๋ค์ ์ง๋ค ํ ๊บผ ํ๋๋ผ ๋๊ธ ์ ๋ฌ์์ค ^_^
yield return null์ while๋ฌธ ์์ํ๊ณ ๋ฐ๋ก ๋ฃ์ด๋ณด์ - dc App
์๋ฆฌํ ์ง์ ์ ๋๋ค๋ง ์๋จ. ๊ทธ๋ฆฌ๊ณ ์ ์ด์ ์ด๋๋ while์์ด๋ผ์ ๋ฐ๋ณต๋์ผํ๋๋ฐ ์ผ์ฒ์ด ์๋ ์ํฉ. - dc App
์๋ ์ ์ด์ while๋ฌธ ์๋์ ๋๋ฒ๊น ์ ํด๋ด?
ํด๋ณด๊ณ ์๋๋๊น ์ง๋ํ์ง. ์ง์ง ์ผ์ฒ์๊ฒ ๋ฑ ํ๋ฐํด ๋๊ณ ๋ฃจํ ๋น ์ ธ๋๊ฐ. - dc App
๋ก๊ทธ ์ฐํ๊ฒ๋ ๊ฐ์ ธ์์
maxTime์ด ๋ช์ธ๋ฐ์
2๋ผ๊ณ ํ๋ค ใ ใ ใ ใ
์ผ๋จ ์ฝ๋ฃจํด ๋์๊ฐ๋ ์ปดํฌ๋ํธ๋ ๊ฒ์ ์ค๋ธ์ ํธ๊ฐ ์ผ์ ธ์๋์ง ํ๋ฒ ํ์ธํด๋ด
๊ณ ๋ง๋ค ๋ค ์ผ์ ธ์์ - dc App
TimeScale๋ ํ๋ฒ ํ์ธํด๋ด์ผ ํ ๋ฏ...?
์ ์ด์ ๋๋ ์ฒซ๋ฐํด์ inteval์ด ๋ช์ด ๋์ค๋์ง๋ฅผ ๋ด์ผํ ๋ฏ
๋ง์ฝ TimeScale ๊ฑด๋ค์์ผ๋ฉด Time.unscaledDeltaTime์ผ๋ก ๊ณ ์ณ๋ณด์
๊ทธ๋์ ์ด๊ฑฐ ํด๊ฒฐ๋จ?
์ด๋์ ์ด๊ธฐํํ๋ฉด์ StopAllCoroutine ํ๋๊ฑฐ ์๋? While๋ฌธ์ ๋ฌธ์ ์์ด๋ณด์ด๋๋ฐ
์ ๋ฐ์ ์ ์คํ๋๋คํ๊ตฌ๋
while(interval < maxTime){
while(interval >= maxTime){
.............
interval += time.deltaTime;
์๋ ๊ฒ ๋ฐ๊บผ์ผ๋๋๊ฑฐ ์๋?
Debug.Log($"interval: {interval} deltaTime: {Time.deltaTime}, maxTime: {maxTime}"); ์ด ์ค์ yield return null ์๋ค์ ๋ฃ๊ณ ๋๋ ค๋ณด๋ฉด ์์ธ ๊ธ๋ฐฉ ์ฐพ์ ๊ฒ ๊ฐ์๋ฐ?
์๋ฐ ๋๋ค ๋๋ํ์์ ์ข ์๋ ค์ค ์ ๋ฐ
๋ชฐ?๋ฃจ ์ฝ๋ฃจํด ๋๋ฆฌ๋๊ฒ ์ ๊ฑฐ ๋ฌ๋ค๊ฑฐ๋ ๊ทธ๋ฐ๊ฑฐ ์๋?
๊ทธ๊ฒ ๋ฌด์จ ๊ฐ์๋ฆฌ์ผ ์ฝ๋ฃจํด ์ง์ฐ๋ ๋ค๋ฅธ์ฝ๋๋ ์ ํ์๋ ์ํ์ - dc App
this.StartCoroutine()์์ this(์ปดํฌ๋ํธ)๊ฐ ์ฌ๋ผ์ง๋ฉด ์ฝ๋ฃจํด๋ ์ฌ๋ผ์ง ๊ทธ๋์ ํน์ ์ปดํฌ๋ํธ๋ฅผ ๋๊ฑฐ๋ ์ง์ฐ๋ ์ผ์ด ์๋์ง ๋ฌผ์ด๋ณด๋๊ฑฐ์
๋ฌด์จ๋ง์ธ์ง ์ดํดํ์. ๋ฏธ์ฌ์ผ ์์ํ์ ์ ์ฝ๋๊ฐ ์คํ๋๋๋ฐ ์์ง ์ถฉ๋ํด์ ๋ฏธ์ฌ์ผ ๊ฐ์ฒด๋ฅผ ์ง์ฐ๋ ์ฝ๋๋ ์๋ฌด ๊ณณ์๋ ์์ง์ด ๋ฃ์์. ์ฝ๋ฃจํด ์์ฒด๋ while ํ๋ฒ ์คํํ๊ณ ์ดํ ์ฝ๋๋ ์ ์คํ๋จ. - dc App
yield return ์ ๊ฑฐ ๋๋๊ฑฐ์? ์ ๋ ๊ฒ ์จ๋ณธ์ ์ด ์์ด์. ์๊ฐ ๊ฐ ์์ผ๋ฉด return ์ผ๋ก ๋ฒ์ด๋๊ฑฐ ์๋๊ฐ? ์๋๋ฉด interval ๊ฐ์ด ์ด์ํ๋ค๊ฑฐ๋
๋ค์ ํ๋ ์๊น์ง ๊ธฐ๋ค๋ฆผ
์ yield return null์ ์ฐ๋ฉด ๋ค์ ํ๋ ์๊น์ง ๊ธฐ๋ค๋ฆฌ๋๊ฒจ? ์ฒ์ ์์๋ค. ํญ์ ์๊ฐ ๊ฐ ๋ถ์ฌ์ ์ผ๋๋ฐ.
์ ๊ฑฐ ์๊ฐํด๋ณด๋๊น ์์ฒญ ์ข์๊ฑฐ๋ค. ๋ค์๋ถํฐ ์จ๋จน์ด์ผ์ง.
์ฏํ ๋ชจ๋ฅด๋ฉด ๋ต๊ธ ๊ทธ๋ง๋ฌ์! - dc App
์ฐ๋ฆฌ๊ฐ ์ผ์ผ ๋๊ธ ๋ฌ์์ค์ผ ๊ณ ์๊ฐ ์์ ์ด๊ฒ๋ ๋ชจ๋ฅด๋ค ํ๋ฉด์ ์๋ ค์ฃผ๋๊ฑฐ์ผ. ์ข ํ๋ ์ ๋ค์ ์ง๋ค ํ ๊บผ ํ๋๋ผ ๋๊ธ ์ ๋ฌ์์ค ^_^
yield return null์ while๋ฌธ ์์ํ๊ณ ๋ฐ๋ก ๋ฃ์ด๋ณด์ - dc App
์๋ฆฌํ ์ง์ ์ ๋๋ค๋ง ์๋จ. ๊ทธ๋ฆฌ๊ณ ์ ์ด์ ์ด๋๋ while์์ด๋ผ์ ๋ฐ๋ณต๋์ผํ๋๋ฐ ์ผ์ฒ์ด ์๋ ์ํฉ. - dc App
์๋ ์ ์ด์ while๋ฌธ ์๋์ ๋๋ฒ๊น ์ ํด๋ด?
ํด๋ณด๊ณ ์๋๋๊น ์ง๋ํ์ง. ์ง์ง ์ผ์ฒ์๊ฒ ๋ฑ ํ๋ฐํด ๋๊ณ ๋ฃจํ ๋น ์ ธ๋๊ฐ. - dc App
๋ก๊ทธ ์ฐํ๊ฒ๋ ๊ฐ์ ธ์์
maxTime์ด ๋ช์ธ๋ฐ์
2๋ผ๊ณ ํ๋ค ใ ใ ใ ใ
์ผ๋จ ์ฝ๋ฃจํด ๋์๊ฐ๋ ์ปดํฌ๋ํธ๋ ๊ฒ์ ์ค๋ธ์ ํธ๊ฐ ์ผ์ ธ์๋์ง ํ๋ฒ ํ์ธํด๋ด
๊ณ ๋ง๋ค ๋ค ์ผ์ ธ์์ - dc App
TimeScale๋ ํ๋ฒ ํ์ธํด๋ด์ผ ํ ๋ฏ...?
์ ์ด์ ๋๋ ์ฒซ๋ฐํด์ inteval์ด ๋ช์ด ๋์ค๋์ง๋ฅผ ๋ด์ผํ ๋ฏ
๋ง์ฝ TimeScale ๊ฑด๋ค์์ผ๋ฉด Time.unscaledDeltaTime์ผ๋ก ๊ณ ์ณ๋ณด์
๊ทธ๋์ ์ด๊ฑฐ ํด๊ฒฐ๋จ?
์ด๋์ ์ด๊ธฐํํ๋ฉด์ StopAllCoroutine ํ๋๊ฑฐ ์๋? While๋ฌธ์ ๋ฌธ์ ์์ด๋ณด์ด๋๋ฐ
์ ๋ฐ์ ์ ์คํ๋๋คํ๊ตฌ๋
while(interval < maxTime){
while(interval >= maxTime){
.............
interval += time.deltaTime;
์๋ ๊ฒ ๋ฐ๊บผ์ผ๋๋๊ฑฐ ์๋?
Debug.Log($"interval: {interval} deltaTime: {Time.deltaTime}, maxTime: {maxTime}"); ์ด ์ค์ yield return null ์๋ค์ ๋ฃ๊ณ ๋๋ ค๋ณด๋ฉด ์์ธ ๊ธ๋ฐฉ ์ฐพ์ ๊ฒ ๊ฐ์๋ฐ?