생각보다도 전혀 진전이 없었다. 한 달, 과거 게시물(8월 16일)을 기준으로 44일을 들이부은 것 치고는 너무 적은 결과물이라 자평한다. 더 많은 시간을 집중할, 정신 상태와 생활 환경, 버릇을 만드는 것이 우선이라 생각된다. 코드 앞에서 보낸 시간 자체가 절대적으로 적었다.
추가 리소스는 인벤토리 슬롯을 빼면 없다. 현재 사용하고 있는 것도 재고의 여지가 있다고 생각 중이다.
이전 포스트를 기준으로, 현재 완료한 바를 이하와 같이 정리한다.
Item pooling Manager생성 기능을 구현출납 기능을 구현- Try-catch 구문? | 예외 처리에 대해서는 아직 모른다.
- Randomize? | 미구현
Inventory Manager출납 기능을 구현- 예외 처리 미구현
ItemScriptableObject 상속 데이터를 클래스 멤버로 갖고 있음.하지만 접근 방식을 열어둬야 될지 모르겠음.Inventory 상호작용 미구현.
- Item-Parser
- 미구현
- ScriptableObject(ItemInfo)를 클래스 멤버로 갖는 Item 템플릿을 만들었다.
Bolt 내부에서 이러한 데이터들을 불러 올 함수 - Bolt 내부의 순차적 접근만 정비하면 만들 수 있을 것
- Inventory-Parser
- 미구현
- 위와 동일.
ScriptableObject(InventoryInfo)를 클래스 멤버로 갖는 Inventory 템플릿을 만들었다.
아이템과는 달리, 하나의 오브젝트가 아니라 Slot이라는 다수의 오브젝트를 갖고 있는 클래스.
비교해보니 그닥 추가된 게 없다.
위의 둘 Parser는 일부 기능이 아래 클래스에 함수로 구현되어있다.
Bolt에서 사용할 때, Parser라는 클래스로 빼서 활용해야 될지에 대해선 감안한 바가 아직 없음.
- Item Manager
싱글톤 패턴 .. 외에 다른 것은 모르므로, 이를 사용.
- poolingItemQueue : Queue
- itemInfoList : 템플릿으로 만든 고정 데이터 Dictonary
- itemIDtable : 가용 가능한 ID 테이블, 목적
- 만들고 나서 느낀 것이지만, 정말로 ID가 필요한지 회의감이 든다.
- Inventory Manager
위와 동일하게 싱글톤
- inventoryList : Inventory 클래스 리스트
- poolingSlotQueue : Slot 오브젝트 풀링.
- inventoryInfoList : Inventory 템플릿(InventoryInfo)으로 만든 고정 데이터.
- positionDir : UI 클래스는 캔버스의 자식으로 있어야 작동하므로, 임시적으로 사용.
- (GraphicRaycaster) : Slot - Item의 상호작용을 위해서 필요한 Canvas Raycast
- Item : MonoBehaviour, IPointerClickHandler, IDragHandler, IBeginDragHandler, IEndDragHandler
- image
- info
- Inventory
- InventoryInfo
- ItemList
- SlotList
- InventorySlot
- 미정
하여 구현해야할 것은 아이템 슬롯InventorySlot과 아이템Item 사이의 상호작용이다. IDragHandler와 GraphicRaycaster를 사용하여, CompareTag로 찾은 슬롯 한 개의 위치를 파악하는 것은 성공했으나, 예를 들어서 길이2, 넓이1의 두 칸 짜리 크기의 아이템을 끌어 놓을 경우에는 어떤 식으로 파악해야 되는지 모르겠다. 이걸 해결하는 것이 당면한 문제다.
타르코프를 참고하면서 신기했던 것이, 아무리 큰 아이템이라도, 가장 구석을 잡든 어디를 잡든, 마우스 정중앙으로 아이템이 집어지고 있을 것이다. 처음에는 모서리를 잡으면 (잡고 있는) 모서리를 기준으로 아이템을 옮기려고 하다, 머리를 벅벅 긁고, 타르코프를 참고하면서 위와 같다는 것을 알았다.
당연히 여러 과정들이 많겠지만, transform.position = eventData.position; 라고 쓴 코드와 같은 게 아닐까.
이러한 것이 완성되면 게임 매니저 / 레벨 매니저를 만들어서 게임 다운 진행도를 갖추는 것을 목표로 한다. 동시에 아이템 데이터와 특정 부류 아이템의 사용 효과를 또 따로 만들어야 될 것. 내러티브 - 다이얼로그 또한 재구성할 필요를 느낀다.
매니저를 너무 남발한 것은 아닌가 싶다. 아이템, 인벤토리, 게임, 레벨 매니저?
다른 유니티 게임의 하이어라키를 살짝 뜯어볼 수 있었는데, Manager라는 이름 하나 뿐이었다. 정확히 어떤 역할을 수행하는지는 모르겠으나, 적어도 ~ Manager라는 작명의 반복은 아니었던 것 같다. 지금 돌아보면, 이때까지 만들어 놓은 이름들도 어떨까 싶다.
일단은 자원 관리 시뮬레이터 장르로 우선은 만들어질 것 같다. itch에 출시하는 것을 목표로 한다. 전에 말했듯이 스팀은 게임을 등록하는 것에 100$를 필요하므로. 무료 출시 이후에 확장팩을 늘려가는 방식으로 수익을 창출할 수 있으면 좋으리라 싶다.
'report' 카테고리의 다른 글
11월 초, 정리 (0) | 2022.11.08 |
---|---|
10월, UI 관련 (0) | 2022.10.18 |
10월, 초기 기획안 (0) | 2022.10.07 |
10월, 초. (0) | 2022.10.05 |
8월, 중간 보고 (0) | 2022.08.16 |