Unity. 코루틴(Coroutine)

μ΅œλŒ€ 1 λΆ„ μ†Œμš”

🌟 Coroutine

코루틴은 λ°˜ν™˜κ°’μ„ 톡해 싀행을 μ€‘μ§€ν•΄μ„œ Unityμ—κ²Œ μ œμ–΄κΆŒμ„ 돌렀주고, 계속할 λ•ŒλŠ” λ‹€μŒ ν”„λ ˆμž„μ—μ„œ μ€‘μ§€ν•œ κ³³λΆ€ν„° 싀행을 κ³„μ†ν•˜λŠ” ν•˜λ­‡λ‹€. μ½”λ£¨ν‹°λŠ” λŒ€λΆ€λΆ„ λ°˜ν™˜κ°’μœΌλ‘œ νŠΉμ • μ‹œκ°„μ„ 기닀릴 수 있게 μ‚¬μš©ν•¨!

🌟 μ‚¬μš©λ²•


public static GameManager instance = null;

void Awake()
{
	StartCoroutine(Fade());
}

IEnumerator Fade()
{
	for (float f = 1f; f >= 0; f -= 0.1f) 
	{
		Color c = renderer.material.color; //ν•΄λ‹Ή κ²Œμž„ 였브젝트의 컬러
        		c.a = f; //투λͺ…도 쑰절
        		renderer.material.color = c; //μ‘°μ ˆν•œ 투λͺ…도λ₯Ό κ²Œμž„ μ˜€λΈŒμ νŠΈμ—κ²Œ μ”Œμ›€
        		yield return new WaitForSeconds(0.1f); //0.1초 κΈ°λ‹€λ¦Ό
	}
}

μœ„ μ½”λ“œλŠ” κ²Œμž„ 였브젝트의 밝기λ₯Ό μ‘°μ ˆν•˜λŠ” ν•¨μˆ˜λ‘œ 코루틴을 μ‚¬μš©ν•΄μ„œ λͺ‡ 초 λ™μ•ˆ μ‚¬λΌμ§€κ²Œ ν•  μ§€ μ •ν•  수 있게 ν–ˆλ‹€. 코루틴은 StartCoroutine() ν•¨μˆ˜λ₯Ό 톡해 μ‹œμž‘ν•˜λ©°, StartCoroutine()을 μ‚¬μš©ν•˜λŠ” λ°©λ²•μ—λŠ” 두 κ°€μ§€κ°€ μžˆλŠ”λ° μœ„ μ½”λ“œμ²˜λŸΌ μ‚¬μš©ν•  μˆ˜λ„ 있고, StartCoroutine("Fade") 이런 μ‹μœΌλ‘œ μ‚¬μš©ν•  μˆ˜λ„ μžˆλ‹€. λ¬Έμžμ—΄ 버전은 코루틴을 쀑간에 멈좜 수 μžˆμ§€λ§Œ, 더 높은 λŸ°νƒ€μž„ μ˜€λ²„ ν—€λ“œλ₯Ό κ°€μ§€λ©° ν•˜λ‚˜μ˜ 맀개 λ³€μˆ˜λ§Œ μ‚¬μš©ν•  수 μžˆλ‹€.

λŒ“κΈ€λ‚¨κΈ°κΈ°