[심플 슈터][구버전] 158. 캐릭터 이동 기능

2023. 12. 18. 18:24·Unreal 공부/UE5 GameDev

구현해야할 이동 기능은 아래와 같다.

 

AddMovementInput() : 이동

AddControllerPitchInput() : 상하 시점

AddControllerYawInput() : 좌우 시점

Jump() :  점프

 

 ShooterCharacter.h에 SetpuPlayerInputComponent() 함수가 있는것을 알 수 있는데, 이 함수 안에서 우리는 바인딩을 해주어야 한다. 

바인딩을 하기 위해선 언리얼에 매핑된 TEXT(이름)과 함수가 필요하다.

// ShooterCharacter.cpp
void AShooterCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
	Super::SetupPlayerInputComponent(PlayerInputComponent);
    
    PlayerInputComponent->BindAxis ...
}

 

※ 예전 버전임을 명심할것.

언리얼의 Project Settings > Engine - Input 에서 Axis, Action Mapping을 할 수 있다.

 

ShooterCharacter.h에서 MoveForward에 대한 함수를 만들어 주었다.

// ShooterCharacter.h
private:
	void MoveForward(float AxisValue);

 

 

ShooterCharacter.cpp를 마저 작성하면 이렇게 된다.

void AShooterCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
	Super::SetupPlayerInputComponent(PlayerInputComponent);
    
    PlayerInputComponent->BindAxis(TEXT("MoveForward"), this, AShooterCharacter::MoveForward);
}

void AShooterCharacter::MoveForward(float AxisValue)
{
	AddMovementInput(GetActorForwardVector() * AxisValue);
}

 

AddControllerPitchInput()와 AddControllerYawInput() 을 이용해서 상하 시야를 구현해 보겠다.

(RotationRate 처리는 추후에 나오지만 미리 적용하였다.

// ShooterCharacter.h
private:
	void LookUpRate(float AxisValue);
	void LookRightRate(float AxisValue);
    
    UPROPERTY(EditAnywhere)
	float RotationRate = 70;
// ShooterCharacter.cpp

// Called to bind functionality to input
void AShooterCharacter::SetupPlayerInputComponent(UInputComponent *PlayerInputComponent)
{
	Super::SetupPlayerInputComponent(PlayerInputComponent);
	
    ...
    
	PlayerInputComponent->BindAxis(TEXT("LookUpRate"), this, &AShooterCharacter::LookUpRate);
	PlayerInputComponent->BindAxis(TEXT("LookRightRate"), this, &AShooterCharacter::LookRightRate);

}


void AShooterCharacter::LookUpRate(float AxisValue)
{
	AddControllerPitchInput(AxisValue * RotationRate * GetWorld()->GetDeltaSeconds());
}

void AShooterCharacter::LookRightRate(float AxisValue)
{
	AddControllerYawInput(AxisValue * RotationRate * GetWorld()->GetDeltaSeconds());
}

 

 

Jump의 경우는 Character.h에 선언되어 있는 점프를 사용해서 바인딩 하였다.

PlayerInputComponent->BindAction(TEXT("Jump"), EInputEvent::IE_Pressed, this, &ACharacter::Jump);

 

'Unreal 공부 > UE5 GameDev' 카테고리의 다른 글

[UE5] 향상된 입력 사용하기, Enhanced Input  (1) 2023.12.23
[UE5] ToonTank (3)  (0) 2023.11.29
[UE5] ToonTank (2)  (0) 2023.11.19
[UE5] ToonTank (1)  (0) 2023.11.17
[UE5][개념편] ToonTank  (0) 2023.11.17
'Unreal 공부/UE5 GameDev' 카테고리의 다른 글
  • [UE5] 향상된 입력 사용하기, Enhanced Input
  • [UE5] ToonTank (3)
  • [UE5] ToonTank (2)
  • [UE5] ToonTank (1)
메카인
메카인
  • 메카인
    메카인의 지식창고
    메카인
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 코딩 공부
        • TIL(Today I Learn)
        • TIL
        • 백준(C++)
        • Python
        • 알고리즘
        • 프로젝트 회고
      • C++
        • C++
        • C++ STL
        • C,C++ mCoding yotube
      • 게임개발
        • 언데드서바이벌_골드메탈_클론코딩
        • 3D_골드메탈_클론코딩
        • 유니티_문제해결
        • 게임 수학
      • Unreal 공부
        • UE5 GameDev
        • Unreal Engine 4 C++ The Ult..
      • 교재 문제 풀이
        • 운영체제
      • 정보처리기사
        • 정처기 요약
        • 정처기 오답노트
      • 학교수업
        • 데이터베이스
        • 프로그래밍 언어론
        • 리눅스 시스템
        • 네트워크
      • 일상
        • 주식
        • 독서
      • (비공개 전용)
        • memory
        • Build
        • OOP
        • Smart Pointer
        • lamda
        • 게임 수학
        • 모던 C++
        • 모던 C++ STL
        • 모던 C++ Concurrency, Paralle..
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 블로그 관리
  • 링크

  • 공지사항

    • 공지사항 - 인생과 블로그의 목표
  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
메카인
[심플 슈터][구버전] 158. 캐릭터 이동 기능
상단으로

티스토리툴바