유니티 게임 개발/3D Portfolio

[유니티] 3D Portfolio #3 아이템, 인벤토리 구현

노랑꼬리 2023. 8. 18. 15:52

목표

기본적인 인벤토리와 아이템 획득 및 사용 구현

(작업기간 2023.08.11 ~ 08.18 (8일 소요, 15일 코로나 완치))

 

1. 인벤토리 시스템 구현

- 슬롯 프리팹 제작 : 각 슬롯을 프리팹으로 관리하여 슬롯 안에 아이템 정보를 담음.

ㄴ 장비의 경우 아이템 카운트 이미지를 사용하지 않음.

 

- Grid Layout Group 를 사용하여 인벤토리 슬롯 정렬

ㄴ 아이템 사용으로 인해 슬롯이 비워지면 해당 슬롯의 내용물을 비우고 슬롯을 맨 뒤로 보낸다.

(매번 새로 정렬을 만들어 정보를 넣는 것이 아닌 회전식으로 구현)

ㄴ 인벤토리 아이템 숫자에 증감이 있을 때 이미 생성된 슬롯을 불러오기만 하여 정렬 비용이 적다.

 

 

- 인벤토리 사용시 게임 속도 감속

ㄴ Time.timeScale을 사용하여 0.1배속 해준다.

 

- 인벤토리 오픈 시 마우스 커서로 조작

ㄴ Cursor.lockState와 Cursor.visible 를 사용

ㄴ 평시는 커서 고정, 볼 수 없음, 인벤토리 사용 시 고정 해제, 볼 수 있음 으로 설정

 

 

2. 아이템 구현

- 아이템 프리팹 제작 : 각 아이템을 프리팹으로 제작하여 아이템 정보를 담아둔다.

(획득 시 해당 오브젝트에서 바로 슬롯으로 정보를 전송한다)

 

- 메인 카메라에서 레이를 쏘아 아이템일 경우 아이템 획득 UI 활성화

ㄴ 아이템 프리팹에서 아이템 이름을 바로 받아서 보여준다.

ㄴ 획득한 아이템은 삭제해 준다.

 

- 아이템 데이터베이스 스크립트에서 포션의 사용 효과를 명시해둠 (다른 형태로 수정 예정)

ㄴ 적용 부위에 수치만큼 변동

 

 

 

3. 결과물

 

 

인벤토리, 아이템 획득 및 사용 테스트