UAnimInstance#
与UUserWidget
和UMG一样,我们同样可以使用UAnimInstance
来搭配动画蓝图使用
UCLASS()
class SHOOTERGAME_API UShooterTPPAnimInstance : public UAnimInstance
{
GENERATED_BODY()
protected:
virtual void NativeUninitializeAnimation() override;
virtual void NativeInitializeAnimation() override;
virtual void NativeBeginPlay() override;
virtual void NativeUpdateAnimation(float DeltaSeconds) override;
virtual void NativePostEvaluateAnimation() override;
};
这里简单介绍一下UAnimInstance
在初始化时的生命周期
在正常的游戏流程中
- NativeUninitializeAnimation
- NativeInitializeAnimation
- NativeBeginPlay
- 进入游戏循环 以下两个函数反复调用
- NativeUpdateAnimation
- NativePostEvaluateAnimation
相反的,如果只是编译成功或进行动画加载,那么会只会执行BeginPlay
之前的函数
- NativeUninitializeAnimation
- NativeInitializeAnimation
如果是在动画蓝图界面中 那么会进入Tick循环,注意此时BeginPlay
并不会被调用,BeginPlay
只会在开始游戏进程的时候才会被调用
- NativeUpdateAnimation
- NativePostEvaluateAnimation
那么如此看来我们就可以在NativeInitializeAnimation()
中进行一些属性的初始化,然后在NativeUpdateAnimation()
去每帧更新