【UE4】TriggerAnimNotifies 递归调用问题

  AnimNotifyState 的 Trigger 核心是三个数组:

  1. ActiveAnimNotifyState: 记录上一帧在 Active 的 NotifyState(简称 Act)
  2. NotifyQueue.AnimNotifies: 记录这一帧 Montage 上所有 Notify(包括 Notify 和 NotifyState)
  3. NewActiveAnimNotifyState(局部变量): 通过 1 和 2 计算出有哪些是这一帧新的 NotifyState(简称 NewAct)
  4. NotifyStateBeginEvent(不太重要,局部):只用来触发新的 NotifyState 的 Begin

  TriggerAnimNotifies (在这里进行动画通知 AnimNotify、动画通知状态 AnimNotifyState 的 Begin、End、Tick 的触发)里的流程如下:

1. 创建 NewActiveAnimNotifyState

   创建 NewActiveAnimNotifyState 并设为 NotifyQueue.AnimNotifies 的 大小(NotifyQueue.AnimNotifies 是每帧算这一帧动画上有哪些动画通知并存起来的)

// Array that will replace the 'ActiveAnimNotifyState' at the end of this function. 
TArray<FAnimNotifyEvent> NewActiveAnimNotifyState; 
NewActiveAnimNotifyState.Reserve(NotifyQueue.AnimNotifies.Num());
2. 添加 NotifyStateBeginEvent
// AnimNotifyState freshly added that need their 'NotifyBegin' event called. 
TArray<const FAnimNotifyEvent *> NotifyStateBeginEvent; 
 
for (int32 Index=0; Index<NotifyQueue.AnimNotifies.Num(); Index++) 
{
    
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值