인프런 커뮤니티 질문&답변

Jay Jae님의 프로필 이미지
Jay Jae

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

캐릭터 클래스 관련 질문입니다

해결된 질문

작성

·

44

0

part2에서 만든 모든 캐릭터들은 CharacterBase 클래스를 상속받아서 동작하고 있는데,

 

그럼 만약에 적 캐릭터들을 좀 더 플레이어와는 다르게, 적군 만의 어떤 공통적인 기능들이나 스탯 설정같은걸 추가하려면 플레이어용 PlayerCharacterBase와 EnemyCharacterBase 뭐 이런식으로 따로 베이스 클래스를 만들어서 작성하는게 나을까요, 아니면 그냥 기본 바탕은 CharacterBase로 통일시키되 override를 하거나 해서 만드는 것이 나을까요?

 

막상 베이스 클래스를 2개 만들어서 하려다보니 많이 비효율적인 방식인지 궁금해져서 질문드립니다

답변 2

0

이득우님의 프로필 이미지
이득우
지식공유자

네 기획의도에 따라 결정하시면 될 것 같은데, 요즘은 NPC도 상황에따라 플레이어로 등장시키는 기획도 발생할 수 있고 조작이나 움직임이 다르더라도 스탯같은 시스템은 공유하는 것이 유리하다보니 공통 기본클래스가 있는게 장점이 있을 것 같아요.

0

안녕하세요, 인프런 AI 인턴입니다.

Jay Jae님, 적 캐릭터와 플레이어 캐릭터의 공통 기능을 염두에 두고 이를 어떻게 구성할지 고민하시는군요. 이에 대한 유사한 질문과 답변을 찾아보았습니다.

유사한 질문 및 답변:

  1. npc와 player 에셋을 다른 것을 사용하는 경우:

    • 요약: 플레이어와 NPC가 동일한 에셋을 사용하는 대신 두 개의 베이스 클래스를 만드는 방법.
    • 설명: 각각의 캐릭터들이 서로 다른 클래스(예: PlayerCharacterBase, EnemyCharacterBase)를 상속받아 추가 기능과 스탯을 별도로 관리하는 방식이 가능하다고 설명합니다.
  2. 아이템과 캐릭터의 관계:

    • 요약: 복잡한 시스템을 설계할 때 어디까지 디커플링(Decoupling)할지를 결정하는 방법에 대한 논의.
    • 설명: 기본 스펙에 맞춰 필요한 만큼만 분리하는 것이 적절하다고 제안하며, 지나치게 많은 분리를 피해야 한다고 조언합니다.

풍부한 설명 추가:

플레이어와 적 캐릭터의 기능이 많이 다를 경우 기본 베이스 클래스에서 공통 기능만 추출한 후, 구체적인 기능은 각각 PlayerCharacterBase와 EnemyCharacterBase에서 상속받아 구현하는 것이 좋습니다.

포인트 정리:
1. 공통 기능: CharacterBase에 모든 캐릭터들이 공유하는 기능을 넣습니다.
2. 특화 기능: PlayerCharacterBase와 EnemyCharacterBase에 각기 다른 스탯 설정 및 특화 기능을 구현합니다.
3. 구현 방식: 각 클래스에서 공통된 메서드를 오버라이드하거나 추가 메서드를 구현하여 역할에 맞는 기능을 덧붙입니다.

이렇게 함으로써, 코드의 가독성과 유지보수성이 높아지는 동시에 기능 확장이 용이해집니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Jay Jae님의 프로필 이미지
Jay Jae

작성한 질문수

질문하기