안녕하세요 러드입니다.
오늘은 유니티에서 미니맵 만들기를 해보겠습니다.
저격 스코프를 만드는 방식과 동일합니다만
새로운 블로그인만큼 ㅋ 새롭게새롭게.
유니티 버전은
5.6.0f 입니다.
준비물
적을 표시할 마크와 플레이어를 표시할 마크
sort of...
전체 맵을 찍은 텍스쳐.
위에서 밑을 바라보는 Y축 기준으로 찍으시면 됩니다.
무슨 쉐이더를 사용하면 편하게 된다고도 하는데..
걍 간편하게 캡쳐해서 하는걸로..
어차피 미니맵인만큼 자세한 건물지형보다는
찍은 후 포토샵으로 후보정 하는 경우가 많아서
저 같은 경우에는 걍 캡쳐한다음에
스프라이트모드로 바꿔버렸지만 포토샵으로 후보정하는게
좋습니다.
저 같은 경우에는 조금 스크립트를 모르셔도 할 수 있도록
쉽게 꾸며보았습니다.
전체 맵의 땅 부분만 복사를 하여서
밑으로 내린 다음 (위는 안되는게 하늘을 보면...ㄷㄷ;;)
그 땅에 (Plane아니면 Cube겠네요)
텍스쳐를 입혀버립니다.
그럼 위 같은 것이 보입니다.
밑으로 내리실 때 Y축으로만 내리셔야 하는데
이유인즉슨 적과 플레이어의 X,Z 값과 마커의 값이 같을 것이기 때문입니다.
그 후 복사해준 미니맵용 땅을 프로젝트로 가져와서
프리팹으로 선언해준다음..
Material 하나를 만들어줍니다.
RenderTexture 도 하나 만들어줍니다.
이러면 프리팹까지 총 3개의 파일이 생기는데요
Material에 Select부분에 텍스쳐를 넣어주세요~
그 다음
미니맵용 카메라를 하나 만들어서
미니맵만 비추게 조정해줍니다.
Camera의 TargetTexture 부분을 미리 만들어준
RenderTexture를 넣어주면 다른 거 말고 딱 요것만 보게 됩니다.
자 그러면 이제 미니맵은 보일겁니다.
이제 그러면 Plane이라던지 아니면 뭐
미니맵으로 볼만한 사각형하나 가져와서 메인카메라 앞에 놔주세요 위치는 뭐
놓으시고 싶으신곳..
그 다음 그 화면에다가 아까 만들어주었던 Material을
넣어주시면 뙇 보입니다.
로테이션이 안맞을 수 있으니 이 부분은
알아서 돌려서 맞춰주세요.
그럼 이제 마커를 각각 플레이어와 enemy에 넣어줍니다.
public class Marker : MonoBehaviour {
public Transform PlayerMark;
Vector3 Markert;
// Use this for initialization
void Start () {
PlayerMark = GameObject.FindWithTag("MainCamera").transform;
}
// Update is called once per frame
void Update () {
this.transform.position = new Vector3(PlayerMark.position.x, PlayerMark.position.y - 216, PlayerMark.position.z);
}
}
생각해보니.. 플레이어도 이렇게 하는게 더 효율적인것 같네요..?
메모리 하나더 안잡아먹어두 되구...
(참고로 마커는 2D라서 3D게임에서 쓰시려면 크기 조절과 로테이션 조절은 알아서..)
오늘은 RenderTexture를 이용해서
미니맵을 간단히 구현해보았는데요.
모르시는 부분 있으시면 댓글로 남겨주세요~
그럼 오늘은 여기까지!
'프로그래밍 > Unity' 카테고리의 다른 글
[유니티] Unity - NewInputSystem 새로운 인풋시스템 적용하기. (0) | 2024.12.10 |
---|---|
Unity - Rest API 만들고 적용하기 (0) | 2024.12.09 |
유니티 3D - 인공지능 AI (스크립트) (1) | 2017.12.09 |
유니티 Unity - Curved UI 휘어진 UI 에셋 구매후기. (0) | 2017.12.06 |
유니티 VR - 점수 UI 만들기 (0) | 2017.11.27 |