유니티 게임 개발/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. 결과물