흔히 말하는 UI는 User Interface의 줄임말이다. 비슷한 느낌으로유니티 공부를 할 때 나오는 UGUI는
Unity's User Interface의 줄임말이다.
UGUI는 모든 UI 요소를 Canvas 컴포넌트에 배치하게 된다.
Canvas에서 만질만할 것은 보통 렌더링 모드이다.
"Screen Space - Overlay"
카메라 설정이나 월드의 변화에 상관 없이 화면에 그리는 모드다.
즉, 무조건 UI를 제일 위에 평면으로 그리는 모드다.
"Screen Space - Camera"
특정한 카메라가 실제 평면을 찍고 있는 것처럼 그리는 모드다.
Order in Layer에 따라 그려지지 않는 오브젝트가 나온다.
"World Space"
몬스터의 HP처럼 실제 게임오브젝트마냥 UI를 올릴 수 있다.
그 다음으로 코루틴(Coroutine)이다.
코루틴은 실행을 일시 중단하고 나중에 다시 시작할 수 있어,
작업을 원하는 순서, 조건, 간격에 맞게 수행하고 싶을 때 유용하다.
IEnumerator 리턴 타입의 함수에서 yield return을 사용하여 코루틴을 구현할 수 있다.
StartCoroutine 함수를 통해 코루틴을 시작할 수 있고, StopCoroutine 함수를 통해 코루틴을 중지할 수 있다.
yield return 방식은 아래와 같이 다양하다.
yield return null : 다음 프레임까지 대기
yield return new WaitForSeconds(float) : 입력한 초(sec) 만큼 대기
yield return new WaitFixedUpdate() : 다음 프레임의 FixedUpdate 까지 대기
yield return WaitUntil(조건) : 조건을 만족할 때까지 대기
yield return startCoroutiune(string) : 입력한 다른 코루틴이 끝날 때까지 대기
yield return new www(string) : 입력한 웹 통신 작업이 끝날 때까지 대기
마지막으로 코루틴은 별도의 스레드에서 실행되지 않는다. (멀티스레드 X)
따라서 Unity의 메인 스레드에서 안전하게 Unity API를 호출할 수 있다.
싱글스레드와 멀트스레드의 차이점을 잘 정리해주신 블로그 주소
=> 싱글스레드(Single thread) vs 멀티스레드 (Multi thread) (velog.io)
1초마다 "Hello, World!"를 출력하는 간단한 코루틴
IEnumerator HelloCoroutine()
{
while (true)
{
Debug.Log("Hello, World!");
yield return new WaitForSeconds(1f);
}
}
void Start()
{
StartCoroutine(HelloCoroutine());
}
'TIL' 카테고리의 다른 글
[ 24.06.18 ] 내일배움캠프 TIL - Rendering Pipeline (0) | 2024.06.18 |
---|---|
[ 24.06.14 ] 내일배움캠프 TIL - Application Quit (0) | 2024.06.14 |
[ 24.06.12 ] 내일배움캠프 TIL - AudioManager (0) | 2024.06.12 |
[ 24.06.10 ] 내일배움캠프 38일차 TIL - Prefab 로딩 (0) | 2024.06.10 |
[ 24.05.27 ] 내일배움캠프 29일차 TIL - 카메라 회전 (0) | 2024.05.28 |