おそらくスクリプトの実行順序でSetAnimation
を呼び出すのが「遅すぎる」のだと思います。つまりそれがSkeletonAnimation
スクリプトのUpdate()
の後にあることを意味します。 SkeletonAnimation.Update()
はアニメーション状態をスケルトンに適用し、 SkeletonRenderer.LateUpdate()
は現在のスケルトン状態に基づいてメッシュを生成します。 したがって、適用後にアニメーションを変更してしまうと、次のフレームに表示されることになります。
解決策は、 SetAnimation()
の後に skeletonAnimation.Update(0);
を呼び出すことです。
Most likely you call SetAnimation
"too late" in script execution order, which means after Update()
of the SkeletonAnimation
script. SkeletonAnimation.Update()
applies the animation state to the skeleton, SkeletonRenderer.LateUpdate()
then generates the Mesh based on the current skeleton state. So when changing the animation after it has been applied, you will see it in the next frame.
The solution is to call skeletonAnimation.Update(0);
after SetAnimation()
.