[유니티] UI Render Mode - 유아이 렌더 모드

sobokii·2024년 4월 11일
0

유니티

목록 보기
9/11

0. 문제 상황

화면에 존재하는 게임오브젝트 위에 체력바 같은 UI Slider를 띄워줘야했다.
그러나 기존의 Overlay 방식으로는 움직이는 유닛에 그렇게 해주는 것이 쉽지 않았다.

1. 해결 방법

Canvas의 Render Mode를 World Space로 바꾼다.
이러면 UI 요소들도 게임오브젝트처럼 각각의 위치를 갖게 되고 그 위치에 따라서 화면에 그려진다.

바꾸니까 UI가 전부 다 다른 곳으로 이동해버렸고...
크기도 엄청나게 커졌다.

scale을 1/100 로 줄이고 위치를 하나하나 배치해주었다.
그리고 유닛 머리위에 떠있는 Slider도 설정해주었다.

손대지 않으면 기본적으로 Overlay 모드로 되어있기 때문에,
위치와 크기를 하나하나 바꿔주는 작업이 어려웠지 나머지는 어렵지 않았다.
이렇게 해결

2. 이론적 배경

Overlay 모드 - 무조건 모든 게임오브젝트보다 UI를 위에 띄워준다. UI 배치용 화면이 따로 있는 만큼 화면 비율 유지에도 편리하고, 간단한 작업을 할 땐 이 모드로 웬만하면 해결하는 것이 좋을 것 같다.

Screen Space - Camera 모드 - UI를 촬영하고 있는 또 하나의 Camera를 추가한다는 메커니즘인 것 같은데 아직 사용해보지 않아서 명확히 와닿지는 않는다.

World Space 모드 - 유아이와 게임오브젝트의 평등시대라고 할까. 그렇다보니 게임 오브젝트 뒤에 유아이를 배치하거나 하는 심층적인 연출도 가능하다. 유아이가 게임오브젝트처럼 동작하게(예를들어 이번 케이스처럼 위치가 동적으로 변하게?) 만들고 싶다면 이용하면 좋을 모드

profile
직장 구하고 있습니다.

0개의 댓글