Develop_Log

[내배캠 최종 프로젝트] 캐릭터 구현

리네엔 2024. 12. 4. 23:16

캐릭터 테이블

엑셀로 캐릭터 및 스킬 테이블을 관리, 튜터님의 ExceltoJsonWizard를 사용해서 json으로 변환해서 사용.

구현

  • Character

    • CharacterInfo 및 SkillInfo등 데이터를 Instance로 감싸서 갖고 있도록 함.
      • ~Instance클래스는 Info를 담고 있는 플레이어가 실제로 갖고 있는 정보의 클래스.
      • 캐릭터 강화 등을 확장이 있을 수 있어 Instance클래스로 관리하도록 함
      • 스킬에 강화가 가능하다고 하면.. 스킬Instance을 characterInstance에 넣어야할 것 같기도.
    • 스텟 및 hphandler등을 갖고 있어 캐릭터의 수치변화 상태를 갖고 있음.
    • SkillBase를 상속받는 Skill들을 갖고 있음.
      • Activator로 할당하고 있음. 리플랙션을 쓰는게 마음에 안듦. 고민중..
        • 이동 등의 물리적 상태 변화는 Player 클래스에서 관리.
      • 이 부분에 대해 고민 중... input 관리나 이동관리/상태관리, 현재 사용 캐릭터를 player 쪽으로 뺐는데.. 이동/상태관리를 character에 다시 집어 넣을까.. 그러기엔 케릭터간의 위치관리가 귀찮다. 그리고 Input 스크립트 때문에 초기화 타이밍 관리도 귀찮고.. 일단 이대로 두고 내일 튜터님께서 코드 부검 하실때 이게 문제면 알려주시지 않을까.
  • Player

    • Input 및 Character의 상태 관리
    • 캐릭터의 위치관리
      • CharcterController를 활용. 딱히 rigidbody를 활용한 물리상호작용이 필요 없을 듯함. 그 물리는 좀 유니티 틱한 물리느낌이 나서 오히려 별로이기도 함.
      • 직접 vector 값을 컨트롤 해서 움직여주는게 보기 적당한 정도의 힘이나 속도 등을 컨트롤 해줄 수 있어서 좋음.
  • Skill

    • 대쉬나 일반 공격도 Skill로 간주하여 관리하도록 함
      • 대쉬도 다양한 형태일 수 있고, 쿨타임을 갖고 있고.. 스킬로 묶어서 관리하기 충분한 조건이라고 생각. 굳이 대쉬롤 따로 찢을 이유도 없다.
      • 일반 공격도 다양한 형태가 있을 수 있어 Skill로 간주하여 관리.

코드의 변경이 많이 일어나는 중이라 코드 상세는 다음에 첨부.