2025년 11월 15일

UI 최상위 렌더링?
유니티에서 World Space UI를 사용하다보면, 다른 게임 오브젝트에 가려져서 UI가 보이지 않을 때가 있다.

예를 들면 사진처럼 체력, 지역정보, 무기 정보 등을 표시하는 HUD 등이 있을 것이다. 사진(Orbit 게임)의 HUD도 World Space UI로 제작되었다. (몰입감을 위한 기울기를 표시하기 위해) 또한, World Space UI는 VR 게임을 제작할 때 필수로 사용된다. VR에서는 Screen Space로 렌더링되는 UI는 보이지 않기 때문이다.
아래의 사진을 보자. 원본 이미지는 이런 이미지이다.

이 이미지를 유니티에서 World Space UI에 넣고, 게임 오브젝트와 겹쳐놓으면 아래처럼 UI가 짤려 보인다.

만약 이 UI가 체력 등을 표시하는 HUD 였다면, 플레이어는 굉장한 불편함을 느낄 것이다.
하지만 UI를 최상위로 렌더링 할 수 있는 기능이 존재한다.
해당 설정을 하면, 아래와 같이 표시된다. 위치는 전혀 조정하지 않았다.

본 정보는 Unity6 URP를 기준으로 합니다. 다른 유니티 버전을 사용하거나 HDRP를 사용할 경우 메뉴의 위치가 다를 수 있습니다.
적용 방법
우선 Edit → Project Settings에서 Quality (품질) 탭을 들어간다.

현재 사용중인 Levels(초록색 네모박스로 체크되어 있는 것)를 누르면 렌더 파이프라인 에셋이 있다. 이걸 누르면 현재 사용중인 Universal Render Pipeline Asset을 찾을 수 있고, 여기서 렌더러 목록에 있는 Univesal Renderer Data를 눌러준다.

해당 Data를 찾았다면, Add Renderer Feature → Render Objects로 추가한다.

그리고 아래와 같이 설정한다.

EventAfterRenderingTransparentsFilters → Queue투명(Transparent)Filters → Layer Mask항상 최상위에 렌더링 하고 싶은 Layer 이름(새로 정의)DepthCheckDepth Test항상(Always)
Event에는 다양한 렌더링 순서가 있으므로, 각자의 프로젝트 상황에 맞게 조절해도 된다.
모든 설정을 하고, 최상위에 두고 싶은 UI가 있는 Canvas의 Layer를 Render Objects에서 설정해준 Layer와 동일하게 설정해주면 끝.
적용 모습

오브젝트와 겹쳐있어도 UI가 최상위로 렌더링된다.