[Unity] Render Texture 와 미니맵

jaehyeonLee·2024년 8월 31일
0

RPG 게임 제작 중에 미니맵이 하나정도 있으면 좋을 것같아 어떻게 생성해주면 될까 생각을 해보았다.
우선 렌더 텍스처는 Unity가 런타임 시점에 생성하고 업데이트하는 텍스처이다.
렌더택스처를 생성해주기위해서는 Assets -> Create-> Render Texture를 통해 RenderTexture를 생성해줄수 있게 된다.

그다음 Camera 하나를 생성해준다. 일단 나는 mainCamera에 audioListener 가 들어가있으니 minimap을 위한 Camera에서는 audioListener를 제거해준다.
미니맵 카메라의 Target Texture에는 아까 생성해준 RenderTexture를 할당해준다.

이제 RenderTexture에는 미니맵 카메라의 시점이 보일것이다.
미니맵 카메라를 원하는 시점으로 맞춰준다음
UI->Image를 하나 생성해준다.
생성한 Image의 Image 컴포넌트를 제거하고 Raw Image 컴포넌트를 할당해준다.
이후 Raw Image 컴포넌트의 Texture에 RenderTexture 를 할당해준다.

이제 이렇게 되면 미니맵을 생성해줄수 가있지만 생각을 해보면 미니맵의 시점은 플레이어나 적 등을 자세하게 보일 필요가없다. 아이콘 등을 통해 플레이어 인지 적인지 상호작용할수있는 npc 인지 구분만 할수 있으면 된다.
그렇기에 미니맵 카메라와 player와 몬스터들을 수정해줄 필요가있다.
플레이어로 예를 들어보겠다.
현재 플레이어와 캡슐로 만들어진 노란 아이콘이 겹쳐져있다. 메인 카메라에서는 노란캡슐이 보이면 안되고 미니맵 카메라에서는 플레이어가 보이면 안된다. 이는 Layer를 이용해주면 된다.

플레이어 아이콘의 Layer에는 MiniMapUI를 할당해준다.

카메라의 Culling Mask를 이용하여 미니맵 카메라의 시점으로는 Ground와 MiniMapUI Layer 들만 볼 수 있게 해준다 .

메인 카메라에는 MiniMapUI가 안보이게 해준다 .

이렇게 되면 게임화면에는 아이콘이 보이지않지만 미니맵 화면에서는 아이콘과 땅만 보이게 해줄수 있게 된다.

profile
이재현의 필기노트

0개의 댓글