跳转至

4 Anim Instance 与动画

1 Anim Instance

PlayerAnim.h
class LEARNING_API UPlayerAnim : public UAnimInstance
{
    GENERATED_BODY()

public:
    virtual void NativeInitializeAnimation() override;
    virtual void NativeUpdateAnimation(float DeltaTime) override;

    UPROPERTY(BlueprintReadOnly)
    TObjectPtr<APlayerCharacter> PlayerCharacter;

    UPROPERTY(BlueprintReadOnly)
    TObjectPtr<UCharacterMovementComponent> PlayerCharacterMovement;

    UPROPERTY(BlueprintReadOnly)
    float Speed;
};
PlayerAnim.cpp
void UPlayerAnim::NativeInitializeAnimation()
{
    Super::NativeInitializeAnimation();
    PlayerCharacter = Cast<APlayerCharacter>(TryGetPawnOwner());
    if (PlayerCharacter) {
        PlayerCharacterMovement = PlayerCharacter->GetCharacterMovement();
    }
}

void UPlayerAnim::NativeUpdateAnimation(float DeltaTime)
{
    Super::NativeUpdateAnimation(DeltaTime);
    if (PlayerCharacterMovement) {
        Speed = UKismetMathLibrary::VSizeXY(PlayerCharacterMovement->Velocity);
    }
}

2 实现状态切换

评论区

欢迎在评论区指出文档错误,为文档提供宝贵意见,或写下你的疑问