@@ -197,6 +197,7 @@ struct FLAXENGINE_API AnimGraphSlot
|
||||
float BlendOutTime = 0.0f;
|
||||
int32 LoopCount = 0;
|
||||
bool Pause = false;
|
||||
bool Reset = false;
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -2098,6 +2098,12 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
|
||||
auto& slot = slots[bucket.Index];
|
||||
Animation* anim = slot.Animation;
|
||||
ASSERT(slot.Animation && slot.Animation->IsLoaded());
|
||||
if (slot.Reset)
|
||||
{
|
||||
// Start from the begining
|
||||
slot.Reset = false;
|
||||
bucket.TimePosition = 0.0f;
|
||||
}
|
||||
const float deltaTime = slot.Pause ? 0.0f : context.DeltaTime * slot.Speed;
|
||||
const float length = anim->GetLength();
|
||||
const bool loop = bucket.LoopsLeft != 0;
|
||||
|
||||
@@ -494,6 +494,7 @@ void AnimatedModel::StopSlotAnimation(const StringView& slotName, Animation* ani
|
||||
if (slot.Animation == anim && slot.Name == slotName)
|
||||
{
|
||||
slot.Animation = nullptr;
|
||||
slot.Reset = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user