[내일배움캠프 TIL] 34. 아이템 퀵슬롯, 미니맵

2023. 11. 6. 23:57내일배움캠프 Unity

[최종프로젝트 6]

오늘 작업은

1. 퀵슬롯 시스템 제작

2. 퀵슬롯에 등록할 아이템 리스트 제작

3. 퀵슬롯과 인벤토리 연동

4. 미니맵 시스템

 

1. 퀵슬롯 시스템 제작

  • public 키코드를 선언해 퀵슬롯에 원하는 키를 세팅할수 있도록 함
  • SetQuickSlotItem() : 인벤토리 아이템의 슬롯 넘버와 이미지를 반영
  • UseQuickSlotItem() : 퀵슬롯 키 입력시 슬롯 넘버를 통해 인벤토리에 접근, 해당 슬롯의 아이템을 사용
  • DisplaySettableItem() : 퀵슬롯에 등록할수 있는 아이템(소모품)을 모두 보여줌

 

2.  퀵슬롯에 등록할 아이템 리스트 제작

  • 퀵슬롯을 누르면 인벤토리에 있는 모든 소모품을 보여줌
  • 소모품 중 하나를 선택하면 해당 퀵슬롯에 선택한 소모품을 등록

 

3. 퀵슬롯과 인벤토리 연동

  • 현재는 키코드로 진행했으나 PlayerInputSystem과 연계하여 퀵슬롯으로 지정된 키를 입력하면 해당 슬롯에 있는 아이템을 사용.
  • 인벤토리의 여러 슬롯에 같은 아이템이 있을수 있기때문에 Player가 가진 Inventory에 접근해 아이템을 사용하는것이 아닌 InventoryUI의 슬롯에 접근해 아이템을 사용

 

4. 미니맵 시스템

  • 메인카메라를 제외하고 미니맵에 사용할 새로운 카메라와 RawImage, Render Texture를 준비한다.
  • 카메라의 Projection을 Orthographic으로 변경하면 원근이 사라져 카메라의 위치로부터 자유로워진다.
  • 카메라의 Target Texture에 새로 만든 Render Texture를 넣어주면 Render Texture에 카메라가 실시간으로 찍고있는 화면이 반영된다.
  • RawImage의 Texture에 만들어둔 Render Texture를 넣어주면 새로 만든 카메라의 실시간 영상을 띄울 수 있다.

 

  • 미니맵에서 플레이어가 잘 보이지 않기 때문에 눈에 잘 띄는 오브젝트를 생성하고 Position Z를 메인카메라와 새로 만든 카메라의 사이에 위치시키면 메인카메라에 보이지 않지만 미니맵에만 보이게 할수 있다.
  • 반대로 실제로 존재하지만 미니맵에 보이지 않게 하려면 새로 만든 카메라의 Culling Mask에서 보이지 않게 하려는 오브젝트의 Layer를 제외시켜주면 된다.
  • 여기서 UI의 Image와 RawImage의 차이를 알아보았는데 Image는 Sprite이미지를 보여줄 때 쓰이며 RawImage는 텍스쳐를 보여줄때 쓴다.

 

 

[ 추가할 것 ]

  • 미니맵기능 실제 맵을 반영해볼 것
  • 퀵슬롯 키 입력시 아이템 사용 → Player Input System 적용