From 96556d5af01cc93b1cb4c7d44e3bdbd2c36a4615 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Fri, 15 Sep 2023 13:51:38 +0800 Subject: [PATCH] stop animations are completed --- ios/src/AssetManager.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ios/src/AssetManager.cpp b/ios/src/AssetManager.cpp index 9c73ac31..51730806 100644 --- a/ios/src/AssetManager.cpp +++ b/ios/src/AssetManager.cpp @@ -250,7 +250,8 @@ void AssetManager::updateAnimations() { for (auto& asset : _assets) { - vector completed; + vector completed; + int index = 0; for(auto& anim : asset.mAnimations) { auto elapsed = float(std::chrono::duration_cast(now - anim.mStart).count()) / 1000.0f; @@ -314,10 +315,14 @@ void AssetManager::updateAnimations() { } // animation has completed } else { - completed.push_back(anim); + completed.push_back(index); asset.fadeGltfAnimationIndex = -1; } asset.mAnimator->updateBoneMatrices(); + index++; + } + for(auto& it : completed) { + asset.mAnimations.erase(asset.mAnimations.begin() + it); } } } @@ -655,6 +660,8 @@ void AssetManager::playAnimation(EntityId e, int index, bool loop, bool reverse, animation.mDuration = asset.mAnimator->getAnimationDuration(index); asset.mAnimations.push_back(animation); + + Log("Current animation count %d ", asset.mAnimations.size()); } void AssetManager::stopAnimation(EntityId entityId, int index) {