•
Player 객체와 PlayerCharacter의 구분
Player의 State를 두어 Player가 캐릭터를 조종하고 있는 중인지(OnControllCharacter),
UI를 조작 중인지(OnControllUI) 구분 할 필요가 있을 듯 함(UI 조종 중에는 Character 발사 등 안됨)
전체 탄약/재화 등은 캐릭터 의존적인 요소가 아니기 때문에 별도로 분리하면 좋음(Player 혹은 PlayerData라는 이름 등의 새로운 객체로)
그렇게 PlayerCharacter는 Prefab화 시키되, Player는 Prefab화 할 필요가 없음(오히려 하지 않는 쪽이 바람직함)
또한 Player 객체가 보유하고 있는 장비나 기타 등등에 대한 정보를 가지고 있고, PlayerCharacter는 이로부터 정보를 가져오는 것이 바람직할 것으로 생각됨. (Player 저장 및 생성에 용이)
•
PlayerCharacter가 Fire하고, Fire에서 Weapon의 ShootProjectile을 호출하게 할 것
기본적으로 PlayerCharacter 및 Weapon 모두에 해당되는 사항이지만, State는 말 그대로 상태를 관리하기 위한 것이지, 실제 동작을 State에서 구현하거나 하는 것은 좋지 않음.
•
WeaponState에 OnEquip, OnUnequip 상태 추가
무기 스왑 애니메이션을 위한 + 기타 버그들을 예방하기 위함
(ex. 무기 스왑은 오직 Ready 및 Empty 상태에서만 가능하도록)
•
Weapon의 초기화에 관해
외부에서 WeaponSet과 같이 무기를 초기화 하는 건 X
추가로 StateMachine은 State 변경과 관련된 요소 이외의 것을 저장하거나 컨트롤 해서는 안 됨