목표: 기본적인 FPS 플레이가 가능한 캐릭터와 캐릭터 컨트롤러를 C++로 구현한다.
구현 요구 사항:
MyCharacter 클래스 (가명)
MyPlayerController 클래스
언리얼 엔진의 EnhancedInputSystem을 사용하여 입력 액션(IA) 및 매핑 컨텍스트(IMC) 설정
Space 키 입력 시 캐릭터가 점프하도록 내장 Jump 함수 연동Ctrl 혹은 C 키 입력 시 앉기/서기 상태가 전환되도록 Crouch UnCrouch 함수 연동Shift 키 입력 시 CharacterMovementComponent의 MaxWalkSpeed 설정플레이어 캐릭터는 게임 진행 중 여러 속성을 가진다.
float Health: 현재 체력float MaxHealth: 최대 체력float Defence: 방어력float Stamina: 달리기용 스태미너bHasGun bIsCrouching bIsSprintingFAttributeData 구조체 도입 고려struct FAttributeData
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float BaseValue;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
float CurrentValue;
};
기본 동작 위에 상태 관리 로직과 애니메이션을 연동하여 자연스러운 캐릭터를 만든다.
Mesh 에 연결enum class ECharacterState
{
Idle,
Walking,
Sprinting,
Crouching,
Jumping,
Shooting
};
플레이어가 마우스 좌클릭 입력 시 캐릭터의 상태에 따라 해당 무기의 발사 가능 여부를 판별하고 FireWeapon 함수 호출
bIsSprinting: 캐릭터가 달리고 있는가bIsJumping: 캐릭터가 점프 상태인가bIsNearWall 등)CanShootbool 타입 반환