Character(=Pawn)의 AddMovementInput()
'메인 플레이어 폰'의 움직임을 제어하는 방법은 크게 2가지로 볼 수 있다.
1. Actor의 Location을 직접 조정.(AddActorLocalOffset 등)
2. Character(=Pawn) C++ 클래스에 있는 AddMovementInput을 사용.
보통 캐릭터 C++클래스를 만들면 딸려오는 함수인 AddMovementInput 함수로 이동을 구현하였는데,
어느 강의에서도 DeltaTime으로 보정해준다는 말이 없어서 알아보기로 하였다.
(DeltaTime: https://djgameprogramming.tistory.com/28?category=997144)
Delta Time
언리얼 엔진의 C++ 클래스에서 AddActorLocalOffset, 혹은 SetActorLocation 함수는 해당 액터의 로케이션 값을 변경할 수 있다. 단순 로케이션 변경이라는 결과를 도출할때는 적합하지만 캐릭터의 이동
djgameprogramming.tistory.com
AddMovementInput 함수는 3가지 파라미터를 갖는 함수다.
첫번째는 이동할 방향값을 저장한 벡터
두번째는 스케일 값
세번째는 MovementInputIgnored() 값을 판단할지에 대한 여부
방향 벡터는 크기 1의 단위 벡터, 스케일 값은 방향벡터를 보정해주는 -1~1 사이의 float값, 세번째는 boolean 변수이므로
셋 모두 이동속도에 관여하지는 않는다.
AddMovementInput 함수의 정의를 보면 상단에 MovementComponent를 가져오는 것을 볼 수 있는데, 이동속도는 바로 CharacterMovementComponent에 저장되어있다.
CharacterMovementComponent에 저장된 이동속도와 공기저항 등 여러 변수에 따라 이동에 관련된 내용을 제어하므로 AddMovementInput을 사용한다면 DeltaTime을 사용하여 이동속도를 제어하지 않아도 된다.