Unreal 2-3.동작구현

별빛에소원을·2025년 1월 22일

TeamSparta-Unreal1기

목록 보기
15/18
post-thumbnail

Maping

만들어둔 추상화된 동작은 Move, Look, Sprint, Jump 총 4개다 Character에서 Controller와 연동시켜야 하는데 이미 구현된 함수가 있기 때문에 그렇게 어렵지 않다.
virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override 이 함수에서 바인드시켜주면 된다.

구현부

void ASpartaCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
	Super::SetupPlayerInputComponent(PlayerInputComponent);
	UEnhancedInputComponent* EnhancedInput = Cast<UEnhancedInputComponent>(PlayerInputComponent);
	if (EnhancedInput==nullptr)
	{
		return;
	}
	ASpartaPlayerController* PlayerController = Cast<ASpartaPlayerController>(GetController());
	if (PlayerController==nullptr)
	{
		return;
	}

	EnhancedInput->BindAction(
		PlayerController->MoveAction,
		ETriggerEvent::Triggered,
		this,
		&ASpartaCharacter::Move);
	EnhancedInput->BindAction(
		PlayerController->SprintAction,
		ETriggerEvent::Triggered,
		this,
		&ASpartaCharacter::StartSprint);
	EnhancedInput->BindAction(
		PlayerController->SprintAction,
		ETriggerEvent::Completed,
		this,
		&ASpartaCharacter::StopSprint);
	
	EnhancedInput->BindAction(
		PlayerController->LookAction,
		ETriggerEvent::Triggered,
		this,
		&ASpartaCharacter::Look);
	
	EnhancedInput->BindAction(
		PlayerController->JumpAction,
		ETriggerEvent::Triggered,
		this,
		&ASpartaCharacter::StartJump);
	EnhancedInput->BindAction(
		PlayerController->JumpAction,
		ETriggerEvent::Completed,
		this,
		&ASpartaCharacter::StopJump);	
}

MoveMentComponent

Character에는 MovementComponent가 내장되어 있기 때문에 해당 클래스를 상속받은 객체는 그냥 사용하면 된다.
주로 사용하는 MovementComponent의 함수는 다음과같다.

  • AddMovementInput : 입력값을 더해줄 때 사용한다.
  • Jump : 공중에 케릭터를 띄운다.
  • StopJump : 점프를 멈춘다.
  • GetCharacterMovement : Character의 Movement를 가져온다.
profile
취미로 게임하는사람

0개의 댓글