์ฒด๋ ฅ ๋ฆฌ์ ๊ธฐ๋ฅ์ ๋ง๋๋ คํ์ผ๋, ์ฝ๋ฃจํด์์ ์ ์ญ๋ณ์์ ์ ๊ทผํ๋ฉด ๊ฐ์ call-by-referenceํ์ง ์๋ ๊ฒ ๊ฐ์์ ์ด๋ ๊ฒ ๊ธ ๋จ๊น๋๋ค.
public int curHP = 10;
public int maxHP = 50;
Corouitne HPregen;
IEnumerator RegenCycle(int cur, int max, float time, int amount)
ย ย {
ย ย ย ย while(true)
ย ย ย ย {
ย ย ย ย ย ย yield return new WaitForSeconds(time);
ย ย ย ย ย ย if (cur >= max) { cur = max; }
ย ย ย ย ย ย else
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย if (max - cur > amount) { cur += amount; Debug.Log("update : " + (cur+amount) + " curHP : " +curHP); }
ย ย ย ย ย ย ย ย else cur = max;
ย ย ย ย ย ย }
ย ย ย ย }
ย ย }
๋ผ๋ฉด
HPregen = StartCoroutine(RegenCycle(curHP, maxHP 1.5f, 5))
์ด๋ผ๋ฉด, ๊ฐ์ curHP์ ๊ฐ์ ์ค๋ฅด์ง ์์ต๋๋ค. ๋ค๋ง, ์ง์ญ๋ณ์ cur์ ๊ฐ์ ๊ณ์ํด์ ์ค๋ฆ ๋๋ค. ๋ญ๊ฐ ๋ฌธ์ ์ผ๊น์? ์๋๋ฉด ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๊ตฌํํด์ผํ ๊น์?
์ง๊ธ ํด๋ณธ ํด๊ฒฐ์ฑ
ํฌ์ธํฐ ์ง์ : ๋ฐ๋ณต์์์ ์ค๋ฅ๋ฅผ ์ ๋ฐํ ์ ๊ทผ๋ฒ์ ๋ํ ๋ฐฉ์ง๋ก ์ค๋ฅ ๋ธ
์์ ํด๊ฒฐ์ฑ
์ฐธ์กฐ์ ์ฌ์ฉย
์ฐธ์กฐ์๋ c#์ ์๋๋ด ๋๋ค. ์ค๋ฅ๊ฐ ๋จ๋ค์.
์ ๊ฑฐ ref ๋ก ํด๊ฒฐ๋๋๊ฐ ํ ๊ฑธ์?
C#์์ ์ฐธ์กฐ์ &๋์ ref๋ฅผ ์ฌ์ฉํ๋ ๋ณด๊ตฐ์. ์ ์ฉํญ ์ ๋ณด ๊ฐ์ฌํด์. ์ด๋์์ ์ฌ์ฉํ ์ฌ๋ฌ is@@@@ ๋ณ์๋ค์ ์ ๋๋ก ๋์๋๋ฐ ์๋ ์ ์ด๋ด๊น์ ใ ์ผ๋จ ์ฐพ์๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๊ฒ...์ ๊ฑฐ int ๊ฐ ๊ตฌ์กฐ์ฒด? ํ์์ธ๋ฐ.ํจ์ ( ) < ์ฌ๊ธฐ์ ๋ฃ์ผ๋ฉด ๊ทธ ๋ฃ์์์ด๋ ์ฌ์ค์ ๋ด์์ด๊ฐ ๋์.ํด๋์ค ํ์ ์ด๋ฉด ๊ฒฐ๊ตญ ์ฐธ์กฐ(ํฌ์ธํธ) ํํ๋ก ๋์ ๊ฐ์๋์ด ๋๋๋ฐ๋ณ์ ํน์ฑ์ด ๊ตฌ์กฐ์ฒด๋ผ์ ๊ฐ์๋์ผ๋ก ์๋ณด๊ฒ๋์๊ทธ๋์ ๊ทธ๊ฑธ ๊ฐ์๋์ผ๋ก ๋ณด๋ ํํ๊ฐref , out ์ผ๋ก ํจ์ ๋ด๋ถ์์๋ ๊ทธ๊ฑธ ์กฐ์ ํ ์์๊ฒ ํด๋จ์ด์๊ทผ๋ฐ ํด๋์ค๋ผ๊ณ ๋ฌด์กฐ๊ฑด ๊ฐ์๋์ ๊ฐ๋ฅดํค๋๊ฒ๋ ์๋๋ผ์..์ ๋ ์ฌ์ค์ ์ ๋๋ก ์๋๊ฒ ์๋๋ผ ๋์ถฉ ์ด์คํ๊ฒ ์๋๊ฑฐ๋ผ ์ ํํ ๋๋ต ๋ชป๋๋ ค ์ฃ์กํฉ๋๋ค.ref, out ์ ๋ํด ๊ฒ์ํ๋ค๋ณด๋ฉด ์ ์ ์ค๋ช ๋ณด๋ค ๋ ์ข์ ์ค๋ช ์ด ์์๊ฑฐ์์
- ํจ์ ํ๋ผ๋ฏธํฐ๋ก ๋๊ธฐ๋ ์๋ฃํ์ด Primitive Type์ด๋ฉด ๋๊ธธ ๋ Call by Value, ๊ฐ์ด ์๋ณธ์ด ์๋ ๋ณต์ฌ๋ ๊ฐ์ด ๋ค์ด๊ฐ๋๋ค.
- curHP๊ฐ ๋ฉค๋ฒ ๋ณ์๋ผ๋ฉด ๋ค๋ฅธ ์๋๊ฐ ์๋ค๋ฉด RegenCycle ํจ์์ int cur ํ๋ผ๋ฏธํฐ๋ ๋ถํ์ํด๋ณด์ ๋๋ค.
์ ๋ง์ต๋๋ค. ์ ์ํด์ฃผ์ธ์. ์ ๊ฐ ๋ฉ์ฒญํ์ต๋๋ค.
์ ๋ฐ ์ฉ์ด ํ๋ ๋ชจ๋ฅด๋ ๋์ด๋ผ ์ค๋ช ์ด ์ด์ํ๋๋ฐ ๊น๋ํ๊ฒ ์ ๋ฆฌํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ฉ์ด๊ณต๋ถ์ข ํด์ผ๊ฒ ์ด์ ใ ใ ใ ใ ใ
์ ์๋ ๋์ ref์ out๋ ์๊ฒ ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
๊ธ์ด์ด ์ ๋๋ค. ์ ์ง์ง ๋ณ์ ์ด๋ค์. ๊ฐ์ฌํฉ๋๋ค. ์ปด๊ณต 2๋ ๋ค๋์๋๋ฐ ์ด๋ ๋ค์ ์ฃ์กํฉ๋๋ค.
์๊ฐ์ข ํ๊ณ ์ด์๋ ์๋ฏธ์์ ์ด๋ฐ ํ์ ํ ์ง๋ฌธ์ด์ง๋ง์๋ ๋จ๊ฒจ๋๊ฒ์ต๋๋ค.