캐릭터의 상태가 달리기, 걷기 기타 등등 많을텐데 현재는 Idle, 뛰기 두 상태만 지원한다
추가적인 상태를 넣어보자
ABP(Anim Blue Print)에서 우클릭 후 스테이트추가 클릭
우선 Ground(지상) 상태는 기존에 사용했던 상태를 똑같이 복사한다
이제 점프중인지 아닌지 확인이 가능하게 만들면 된다.
UCLASS()
class TESTUNREALENGINE_API UMyAnimInstance : public UAnimInstance
{
//...
private:
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Pawn, Meta=(AllowPrivateAccess=true))
float Speed;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Pawn, Meta = (AllowPrivateAccess = true))
bool IsFalling;
};
void UMyAnimInstance::NativeUpdateAnimation(float DeltaSeconds)
{
Super::NativeUpdateAnimation(DeltaSeconds);
auto Pawn = TryGetPawnOwner();
if (IsValid(Pawn))
{
Speed = Pawn->GetVelocity().Size();
auto Character = Cast<ACharacter>(Pawn);
if (Character)
{
IsFalling = Character->GetMovementComponent()->IsFalling();
}
}
}
void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);
PlayerInputComponent->BindAction(TEXT("Jump"), EInputEvent::IE_Pressed, this, &AMyCharacter::Jump);
// ...