미니맵 만들기 ( RenderTexture)


미니맵을 만드는 방법도 여러가지가 있겠지만 

이번에 학습할 내용은 랜더텍스처로 카메라를 추가해 캐릭터를 밑에 바라보게 하는것이다.

(보통은 카메라도 연산비용이 크기 때문에 카메라를 추가하지 않고 

캐릭터 실제 움직이는 위치를 계산해 이미지로 작은 미니맵을 만들어 준다고 한다.)


1) 카메라 추가 

위에서 밑을 바라보는 카메라를 만들어 미니맵처럼 보이기위함이다.

하이라키창에서 마우스 오른쪽 클릭하고 카메라를 추가해준다.

이름은 기존 카메라와 헷갈리지 않게 미니맵카메라 정도로 바꿔준다.


2) 캐릭터 플레이어를 대신 할 오브젝트 추가

새로 추가한 카메라가 플레이어 캐릭터를 비추면되지만 보통 캐릭터에는 폴리곤과 많은 이미지들이 붙어 있기 때문에 미니맵에는 이렇게 보일 필요가 없다. 

캐릭터의 어디에 있는지 위치정도만 보여주면 되기 때문에 나는 큐브를 생성하고 플레이어 자식으로 넣었다.

(미니맵 카메라는 사각이미지로 보일것이다.)

그리고 이 큐브 레이어를 'playercube'로 해준다. 이유는 밑에 설명


3) RenderTexture추가

랜더텍스처를 추가한다.

Render Texture는 런타임에서 생성 및 갱신되는 특수한 Texture로 카메라가 비추는 화면을 텍스처럼 가지고 있고 원하는 이미지에 그려줄 수 있는 텍스처라고 생각하면 된다.


4) 미니맵카메라 인스펙터 설정

새로 추가한 카메라에 셋팅을 해줘야한다. 

첫 번째로 카메라가 Culling Mask를 설정해준다. 

Culling Mask는 카메라가 보여질 레이어들은 체크하는 것이다. 맨 처음에는 Everything으로 되어 있을것이다. 

방금 추가한 Cube는 'playercube'이기 때문에 이것은 체크해주고 player(실제 캐릭터)는 체크 해제 해준다.

나머지는 그릴 필요가 있는지 없는지 체크해서 상황에 맞게 설정해준다. 


두 번째는 Target Texture를 아까 생성한 RenderTexture를 추가한다.


5) Raw Image 미니맵 이미지 생성

캔버스 밑에 Raw Image를 생성한다. 

일반 Image와 다르게 텍스처를 설정 할 수 있기때문이다.

Texture에 여기에도 아까 생성한 랜더텍스처를 넣어준다.


플레이 (우측 상단)


여기서 추가 셋팅은 기존 카메라에서는 당연히 하늘을 보게 되면 아까 추가한 큐브가 보일 것이다. 

기존 카메라에서 Culling Mask 'playercube'를 체크 해제해서 안보이게 해주어야한다.


랜더 텍스처 : https://docs.unity3d.com/kr/530/Manual/class-RenderTexture.html

반응형

+ Recent posts