캐릭터 클래스 관련 질문입니다
part2에서 만든 모든 캐릭터들은 CharacterBase 클래스를 상속받아서 동작하고 있는데,
그럼 만약에 적 캐릭터들을 좀 더 플레이어와는 다르게, 적군 만의 어떤 공통적인 기능들이나 스탯 설정같은걸 추가하려면 플레이어용 PlayerCharacterBase와 EnemyCharacterBase 뭐 이런식으로 따로 베이스 클래스를 만들어서 작성하는게 나을까요, 아니면 그냥 기본 바탕은 CharacterBase로 통일시키되 override를 하거나 해서 만드는 것이 나을까요?
막상 베이스 클래스를 2개 만들어서 하려다보니 많이 비효율적인 방식인지 궁금해져서 질문드립니다
답변 2
0
네 기획의도에 따라 결정하시면 될 것 같은데, 요즘은 NPC도 상황에따라 플레이어로 등장시키는 기획도 발생할 수 있고 조작이나 움직임이 다르더라도 스탯같은 시스템은 공유하는 것이 유리하다보니 공통 기본클래스가 있는게 장점이 있을 것 같아요.
0
안녕하세요, 인프런 AI 인턴입니다.
Jay Jae님, 적 캐릭터와 플레이어 캐릭터의 공통 기능을 염두에 두고 이를 어떻게 구성할지 고민하시는군요. 이에 대한 유사한 질문과 답변을 찾아보았습니다.
유사한 질문 및 답변:
npc와 player 에셋을 다른 것을 사용하는 경우:
- 요약: 플레이어와 NPC가 동일한 에셋을 사용하는 대신 두 개의 베이스 클래스를 만드는 방법.
- 설명: 각각의 캐릭터들이 서로 다른 클래스(예: PlayerCharacterBase, EnemyCharacterBase)를 상속받아 추가 기능과 스탯을 별도로 관리하는 방식이 가능하다고 설명합니다.
- 요약: 플레이어와 NPC가 동일한 에셋을 사용하는 대신 두 개의 베이스 클래스를 만드는 방법.
-
- 요약: 복잡한 시스템을 설계할 때 어디까지 디커플링(Decoupling)할지를 결정하는 방법에 대한 논의.
- 설명: 기본 스펙에 맞춰 필요한 만큼만 분리하는 것이 적절하다고 제안하며, 지나치게 많은 분리를 피해야 한다고 조언합니다.
- 요약: 복잡한 시스템을 설계할 때 어디까지 디커플링(Decoupling)할지를 결정하는 방법에 대한 논의.
풍부한 설명 추가:
플레이어와 적 캐릭터의 기능이 많이 다를 경우 기본 베이스 클래스에서 공통 기능만 추출한 후, 구체적인 기능은 각각 PlayerCharacterBase와 EnemyCharacterBase에서 상속받아 구현하는 것이 좋습니다.
포인트 정리:
1. 공통 기능: CharacterBase에 모든 캐릭터들이 공유하는 기능을 넣습니다.
2. 특화 기능: PlayerCharacterBase와 EnemyCharacterBase에 각기 다른 스탯 설정 및 특화 기능을 구현합니다.
3. 구현 방식: 각 클래스에서 공통된 메서드를 오버라이드하거나 추가 메서드를 구현하여 역할에 맞는 기능을 덧붙입니다.
이렇게 함으로써, 코드의 가독성과 유지보수성이 높아지는 동시에 기능 확장이 용이해집니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
무한맵 제작과정중에 GetWorld 가 Nullptr 을 반환합니다.
0
46
2
12강 행동트리에서 질문이 있습니다.
0
52
1
위젯 사이즈랑 위치 질문드려요.
0
82
3
행동트리의 데코레이션 관련하여 질문이 있습니다.
0
94
3
VS 2026 의 문제일까요?
0
488
2
에셋참조 블루프린트질문
0
67
2
애님 몽타주 콤보 관련질문
0
70
2
ThirdPerson CDO 에러가 생깁니다.
0
95
3
캐릭터가 움직이지 않습니다.
0
182
4
쿠킹 폴더 지정시 , Item 이외에는 지정하지 않는지 궁금합니다.
0
62
2
TSoftObjectPtr 를 사용했음에도, 메모리에 로드 됩니다.
0
95
2
7강에 나오는 생성자에 대해서 궁금합니다.
0
78
2
6강을 마무리하며 트레이스 채널 을 이해하지 못했습니다.
0
73
2
3강을 마무리 하며, 카메라가 움직이지 않습니다.
0
71
2
Use Controller Rotation 옵션값이 궁금합니다.
0
84
2
3강 입력 시스템 적용 중, 5.6 버전은 입력 매팅이 2개 입니다.
0
65
2
PlayerController 에 대헤 제가 잘못 이해한 것 같습니다.
0
78
2
13강 UpdateStat 부분에서 문제를 겪고 있습니다.
0
64
2
BP_PlayerController의 CustomEvent노드 이유가 궁금합니다.
0
66
1
콤포넌트 포인터 선언시 TObjectPtr<>과 UStaticMeshComponent* 차이점
0
73
2
CharacterMovementComponent의 RotationRate관련해서 질문이 있습니다.
0
115
2
언리얼 공부방법에 대해 질문드립니다.
0
87
2
4강 에서 이상한 그림자가 남습니다.
0
46
1
2강에서 카메라 회전안되시는분 참고
2
91
2





