์ฒด๋ ฅ ๋ฆฌ์   ๊ธฐ๋Šฅ์„ ๋งŒ๋“œ๋ คํ–ˆ์œผ๋‚˜, ์ฝ”๋ฃจํ‹ด์—์„œ ์ „์—ญ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋ฉด ๊ฐ’์˜ 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์˜ ๊ฐ’์€ ๊ณ„์†ํ•ด์„œ ์˜ค๋ฆ…๋‹ˆ๋‹ค. ๋ญ๊ฐ€ ๋ฌธ์ œ์ผ๊นŒ์š”? ์•„๋‹ˆ๋ฉด ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผํ• ๊นŒ์š”?


์ง€๊ธˆ ํ•ด๋ณธ ํ•ด๊ฒฐ์ฑ…

ํฌ์ธํ„ฐ ์ง€์ • : ๋ฐ˜๋ณต์ž์—์„œ ์˜ค๋ฅ˜๋ฅผ ์œ ๋ฐœํ•  ์ ‘๊ทผ๋ฒ•์— ๋Œ€ํ•œ ๋ฐฉ์ง€๋กœ ์˜ค๋ฅ˜ ๋œธ


์—์ƒ ํ•ด๊ฒฐ์ฑ…

์ฐธ์กฐ์ž ์‚ฌ์šฉย