구현 기간 : 07.06 ~ 07.06 게임을 처음 시작할 때 캐릭터의 얼굴과 옷을 꾸밀 수 있는 커스텀을 구현한다. 커스텀에 사용한 에셋은 POLYGON Modular Fantasy Hero Characters - Low Poly 3D Art by Synty이다. 해당 에셋은 SkinnedMeshRenderer를 사용하여 옷을 입힐 수 ...
(3D RPG) 아이템 DeepCopy (깊은 복사)
구현 기간 : 06.18 이걸 뒤 늦게 구현한 이유는 Dictionary에서 꺼내올 때 내부에서 자동으로 깊은 복사(Deep Copy)를 진행할 것이라 생각했다. Dictionary를 통해 Item을 저장하여 사용하고 있는데 강화하는 과정에서 이를 눈치챘다. 무기 아이템을 5강까지 강화했는데 똑같은 id를 가진 무기들이 모두 5강이 되어 ...
(Unity) 안드로이드 빌드 버그 - logcat 사용
2D 모바일 게임을 개발하다가 처음 겪어 보는 버그가 발생했다,, 빌드 하는 과정에서 콘솔창에 아무런 Error가 뜨지 않았는데.. 안드로이드 폰에서 실행을 하면 기능이 작동을 안한다..ㅜㅜ 빌드 세팅, 스크립트, 컴포넌트 등 계속 검토했지만 찾을 수 없었고 결국 커뮤니티에 물어봤다. 원인 원인은 모바일에서 실행하면 어떤 Error가 떴는지 알...
(3D RPG) 강화
구현 기간 : 06.08 ~ 06.09 NPC에게 말을 걸어서 강화하는 기능을 구현한다. 🎮 구현 기능 📝 UpgradeNpcController.cs 플레이어와 가깝다면 G키를 눌러 상호작용할 수 있다. 상호작용하면 플레이어의 움직임을 멈추고 강화 Popup과 인벤토리 Popup을 활성화한다. 📝 UI_UpgradePopup.cs UI_...
(3D RPG) 퀘스트
구현 기간 : 06.07 NPC로 부터 받은 퀘스트를 확인하는 퀘스트 Popup을 구현한다. 🎮 구현 기능 📝 UI_QuestPopup.cs 퀘스트창을 On/Off 하고 퀘스트 슬롯을 관리한다. 퀘스트 슬롯을 클릭하면 퀘스트 정보가 나오도록 구현한다. 📝 UI_QuestSlot.cs 퀘스트창에서 슬롯으로 사용된다. 슬롯에는 게임 S...
(3D RPG) NPC 대화 (퀘스트)
구현 기간 : 06.05 ~ 06.06 NPC에게 말을 걸어서 퀘스트를 받는 기능을 구현한다. 🎮 구현 기능 📝 QuestNpcController.cs 플레이어와 가깝다면 G키를 눌러 상호작용할 수 있다. 상호작용하면 플레이어의 움직임을 멈추고 대화 Popup을 활성화한다. 대화 NPC가 기본적으로 가지고 있는 대화는 일반, 퀘스트시작,...
(Unity) FixedUpdate GetKey
조금이라도 최적화를 하기 위해 사용자의 키 입력을 받을 땐 Update()를 사용하고, 키 입력이 필요 없는 곳은 FixedUpdate()를 사용해줬다. 어느날 실수로 FixedUpdate()에서 Input.GetKeyDown을 실행했는데 한번 누를 때 1번 실행되는 것이 아닌 2~4번 정도 작동이 됐다. 이상함을 느끼고 Update()로 바꿔...
(Unity) foreach Error
Error : InvalidOperationException: Collection was modified; enumeration operation may not execute. 팝업창들을 관리하기 위해 전체삭제를 구현하는 중 foreach에서 에러가 났다. 이유는 간단했다. List<GameObject> popupList = ne...
(Unity) CapsuleCollider Center 변경법
CapsuleCollider를 사용하는 중 center 값을 변경하기 위해 구글링 하지 않고 바로 수정을 시도했는데 황당한 일이 벌어졌다. 다음과 같이 center를 수정했고 실행했을 땐 적용이 안됐다. CapsuleCollider capsuleCollider; capsuleCollider.center.Set(2f, 3f, 4f); 이상할게 ...
(3D RPG) NPC와 상점
구현 기간 : 06.01 ~ 06.04 NPC의 기본 기능과 상점 NPC를 구현한다. 🎮 구현 기능 📝 NpcController.cs 앞으로 만들 NPC는 전부 가만히 있기 때문에 다음과 같이 기능을 구현한다. 플레이어가 접근 시 플레이어 바라보기 (Idle) 플레이어가 가까이 있다면 상호작용 가능 모든 NPC는 NpcContr...