My SkeletonAnimation.Update() is 97% of my game's system cost. I assume that's not normal. The system usage increases every time I use my jump animation, and does not go back down once it increases. My jump animation is unique from the others in that I call a trackTime from the animation depending on what my vertical velocity is. This is what the code looks like:
if (myRigidbody2D.velocity.y > 0)
{
stateData.SetMix(skeletonAnimation.state.GetCurrent(0).Animation, jumplaunchAnimation, 0); //adjusts mix speed
skeletonAnimation.state.SetAnimation(0, jumplaunchAnimation, true); //start animation
var trackEntry = skeletonAnimation.state.GetCurrent(0);
float atThisFrame = 30; //because 30 "frames" in the launch animation
atThisFrame = atThisFrame * (myRigidbody2D.velocity.y / (jumpForce - 6)); //get frame we want
if (myRigidbody2D.velocity.y > 34)
{
atThisFrame = 1;
}
trackEntry.TimeScale = 0; //stop animation
trackEntry.TrackTime = (30 - atThisFrame) / 30f;
}
Is there something wrong with the way I'm using trackEntry.TrackTime? The code works exactly how I want it to, but after about 100 jumps, the profiler looks like this - and the stats stay like that indefinitely until I terminate the session:

update: commenting out the tracktime adjustments and just setting timescale to 0 still produces the same burden on the system. Other animations seem to cause it too.