1. UI
1) UGUI (Unity's User Interface)
- Unity의 기본 UI 시스템으로 게임 내의 사용자 인터페이스를 구축하는 데 사용된다.
2) Canvas
- UGUI에서 모든 UI 요소는 Canvas라는 컴포넌트 내에 배치된다.
- 스크린 오버레이, 카메라 오버레이, 월드 공간의 3가지 렌더 모드를 지원한다.
✔️ 렌더링 모드
- Screen Space - Screen Overlay
- 카메라 설정이나 월드의 변화에 상관 없이 독립적으로 화면 위에 렌더링한다.
- 즉, 무조건 UI를 제일 위에 평면으로 그리는 모드
- Screen Space - Camera Overlay
- 특정한 카메라가 실제 평면을 찍고 있는 것처럼 그린다.
- Order in Layer에 따라 그려지지 않을 수도 있다.
- World Space
- 몬스터의 HP처럼, 실제 게임오브젝트처럼 UI를 올릴 수 있다.
- UI 요소에는 Rect Transform이 사용된다.
- 위치, 크기, 회전, 스케일을 지정하는데 사용되며,
앵커 및 피벗을 사용하여 부모와의 상대적인 위치를 지정한다.
✔️ 앵커와 피벗
2. 코루틴(Coroutine)
하나의 작업을 여러 개의 프레임에 분산할 때 사용
→ 비동기적인 흐름
- 코루틴의 활용
- IEnumerator 리턴 타입의 함수에서 yield return을 사용하여 코루틴을 구현할 수 있다.
- StartCoroutine 함수를 통해 코루틴을 시작할 수 있고, StopCoroutine 함수를 통해 코루틴을 중지할 수 있다.
- 코루틴은 프레임 간의 지연, 비동기 작업, 시간에 따른 애니메이션 등의 작업에 주로 사용된다.
- yield return null은 다음 프레임까지 대기를 의미하고, yield return new WaitForSeconds(n)은 n초 동안 대기를 의미한다.
- 코루틴은 별도의 스레드에서 실행되지 않는다.
따라서 Unity의 메인 스레드에서 안전하게 Unity API를 호출할 수 있다.
- 코루틴은 일반 함수와는 다르게, 실행을 일시 중단하고 나중에 다시 시작할 수 있어, 시간 지연, 반복, 조건부 대기 등의 작업을 수행할 때 매우 유용하다.
1) yield return
- yield return new WaitForSeconds(float) : 입력한 초(sec) 만큼 대기
- yield return new WaitFixedUpdate() : 다음 프레임의 FixedUpdate 까지 대기
- yield return WaitUntil(조건) : 조건을 만족할 때까지 대기
- yield return startCoroutiune(string) : 입력한 다른 코루틴이 끝날 때까지 대기
- yield return new www(string) : 입력한 웹 통신 작업이 끝날 때까지 대기