Fader (장면 전환)
이 문서는 Udemy의 ‘RPG Core Combat Creator’ 강의를 보고 배운 점을 적은 것입니다.
필요 이유
Fade In, Fade Out의 효과를 주고 싶다.
구조
Fader (오브젝트) : Canvas 오브젝트 (UI)
- Fader (스크립트) : 구동 코드 부분
- Canvas Group (컴포넌트) : Canvas에 속해있는 UI 컴포넌트들을 한번에 조절하는 컴포넌트
- Image (컴포넌트) : 화면에서 사라지거나 나타나는 이미지
코드
namespace RPG.SceneManager
{
public class Fader : MonoBehaviour
{
CanvasGroup canvasGroup;
void Start()
{
canvasGroup = GetComponent<CanvasGroup>();
}
public IEnumerator FadeIn(float time)
{
whlie (canvasGroup.alpha > 0.0f)
{
canvasGroup.alpha -= Time.deltaTime / time;
}
}
public IEnumerator FadeOut(float time)
{
whlie (canvasGroup.alpha < 1.0f)
{
canvasGroup.alpha += Time.deltaTime / time;
}
}
public IEnumerator FadeOutIn(float time)
{
yield return FadeOut(time);
yield return FadeIn(time);
}
}
}
배운 점
- 코루틴 안에서 yield return 으로 코루틴이 완료된 후 다음 동작을 실행하도록 할 수 있다.
- Time.deltaTime / time 으로 현재 흐른 시간을 0 ~ 1 값으로 변환할 수 있다.
(목표 시간이 3초라면, 시작은 0, 3초 후에는 1)