오늘은 프로젝트를 진행하며 인벤토리를 구현하는 데, 인벤토리에 있는 아이템을 자세히 볼 수 있는 기능을 만드려다 생긴 간단한 문제에 대해 다뤄 보려고 한다.
UI는 기본적으로 2D이다. 그렇기 때문에 UI에 따로 3D 오브젝트를 띄울 수 있는 기능이 존재하지 않는다. 그래서 구글링을 해보니 정말 신기한 방법이 있어서 이를 까먹지 않기 위해 정리해보려고 한다.
참고 링크 : 3D 오브젝트 Canvas에 위치시키기
먼저 순서를 간단하게 소개하면 다음과 같다.
1. Canvas에 아무 UI나 추가한다. (3D 오브젝트를 생성할 Pivot을 잡아준다고 생각하면 된다.)
2. Canvas에 띄우고 싶은 3D 오브젝트를 방금 UI에 추가한 것의 자식객체로 넣는다.
3. Canvas의 Render Mode를 Screen-Camera로 변경한다.
4. UI만 화면에 출력할 UI Camera를 만들고 세팅한다.
이 순서대로 진행하면 Canvas에 3D 오브젝트를 띄울 수 있다. 이제부터 하나씩 해보자.
먼저 Canvas에 아무 UI나 추가한다. 참고 자료에서 Button을 이용하고 있어서 나도 Button을 사용했다. 버튼의 transform만 사용할 예정이라 Rect Transform을 제외한 모든 컴포넌트를 지우고 ItemPivot 으로 이름을 변경했다. 나는 Canvas에 띄울 3D 오브젝트의 크기를 조절 하기 위해 Scale을 조금 수정해주었다.

그리고 Canvas에 띄우고 싶은 3D 오브젝트를 ItemPivot의 자식객체로 넣는다. 나는 미리 만든 손전등 오브젝트를 넣었다.
(3D오브젝트의 Tag를 UI로 지정하는 것을 잊지말자)

그 다음으로 3D 오브젝트를 띄울 Canvas의 Render Mode를 Screen-Camera로 변경한다.

그리고 Camera를 하나 생성하여 아래와 같이 세팅한다.

이렇게 세팅하면 해당 카메라는 UI만 찍게 된다. 마지막으로 UI Camera를 Main Camera의 Stack에 넣어주고 Main Camera의 Culling Mask를 아래와 같이 수정해주면 끝이다.

