2024. 1. 23. 23:46ㆍ내외 교육들/TIL
오늘 배운 것 및 개발 과정
일단 NPC의 움직임 초기 구현 후, 다음으로 해야 할 것은 NPC 정보, 스폰, 상호작용, 그리고 맵 상의 낮밤 루틴을 어떻게 구현하는가이다.
NPC 정보(NPCInfo.cs)
NPC 정보로썬 저번이 기획했던 방문자여부(NPC 종류), 메뉴, 이동경로, 생성 속도, 스폰 위치에 관한 오브젝트 변수 값들이지만, NavMesh2D로 타겟을 추적해서 이동하기에 이동경로 변수는 넣을 필요는 없다. 스폰 위치는 필드의 스폰 위치를 빈 오브젝트로 넣어서 position 위치값으로 넣어야 하고, 생성 속도는 NPC 단일로 봐야 하는 것이 아니라 Spawn 관련 스크립트에서 조절을 해야 한다. 낮밤과 시간이 지남에 따라서 레벨 디자인이 생성 속도를 관여한다고 판단된다. 결론은 NPC 오브젝트 생성에 필요한 정보는 방문자여부와 메뉴, 스폰 위치 변수로 결정된다고 본다.
NPC 스폰(NPCSpawn.cs)
여기서 고민되는 것은 ‘게임 플레이 상 낮 시간이 지남에 따라서 어떻게 스폰 속도를 조절하면서 낮 시간때가 종료가 될 때 스폰을 멈출 수 있냐’라는 것이다. 스폰과 오브젝트의 파괴는 카메라 밖에 스폰 위치와 파괴 위치를 결정짖는 오브젝트 transform 값을 끌어다 넣으면 해결되겠지만, 게임 상의 시간은 제한 시간으로 두고 현제 시간을 반영해야 할지 아니면 카운트다운을 통해서 결정지어야 할지가 고민된다.
NPC 상호작용(NPCInteraction.cs)
NPC 오브젝트에 Collider 컴포넌트를 넣어서, 플레이어가 NPC 범위 안에 들면 상호작용을 할 수 있으며, NPC의 목표를 달성할 수 있게, 그리고 제한 시간을 두어서 메뉴를 주지 않는다면 실망해서 가게 평판이나 불이익을 줄 수 있는 패널티를 주고 NPC 타겟을 바꿔 오브젝트가 카메라 밖으로 파괴될 수 있도록 바꾸는 기능을 넣는 것이 적당하다고 생각했는데, 타겟 위치를 바꾸는 것 때문에 스폰 스크립트와 약간의 헙업이 있을 수 있다는 생각을 하였다.
그 밖에 NPC 오브젝트를 다양한 종류와 수치 값을 가진 오브젝트들로 생성하기에, 프리팹화 하여 오브젝트 풀링을 통해서 생성하는지, NPC 데이터 값을 좀더 정리하기 쉽게 스크립터블 오브젝트를 활용해야 할지, FSM 상태 머신을 활용해서 NPC의 행동 패턴을 단일화 해야 할지가 고민되었는데, 일단 이것들을 어떻게 활용해야 할지 내일 결정해야 한다.
하루 마무리 및 내일 할 것
개발보다는 배운 것들을 다시 복습하는 시간과 어떻게 실용할 수 있는지 자료 찾는 시간이 많았다. 물론 개발자 지식을 다시 리마인드 및 복습하는 것은 좋지만 시간이 많이 없으므로 더 빨리 해야 한다.
'내외 교육들 > TIL' 카테고리의 다른 글
TIL)2024-01-25 스크립터블 오브젝트 (1) | 2024.01.25 |
---|---|
TIL)2024-01-24 구현 진행중 (0) | 2024.01.24 |
TIL)2024-01-22 모의 기술 면접 (2) | 2024.01.22 |
TIL)2024-01-19 NPC 구현 및 움직임의 초안 (0) | 2024.01.19 |
TIL)2024-01-18 NPC 구현의 시작 (0) | 2024.01.18 |