I seem to be asking a lot of questions but I guess it's the best way to learn. As an added note I have looked online and through this forum and no real solution, this post comes after some research.
so I am making my game in unity and exported a build to test on a different machine today. I discovered that my walk cycle is A LOT faster on another machine. After doing some research I basically learnt that
I need to make my frame rate independent using delta.time. My question is, where should I add the script to do this? I don't want to code it in to the wrong location. Is there another way to do this, is there something I am missing out on?
Comments
The one thing I can think of is that if you have one machine that is particularly slow, it may not like the try/catch statements in AnimEngine_SpritesUnity.cs. Open up that file, and find the function named PlayStandardAnim (around line 599). This is the function through which all idle/walk/talk sprite animations are played.
Try commenting out the try/catch statements so that lines 608 onwards read:
if (character.crossfadeAnims)
{
character.GetAnimator ().CrossFade (clip, character.animCrossfadeSpeed, 0);
}
else
{
character.GetAnimator ().Play (clip, 0);
}
That checkbox might be a clue. Are you certain that the problem is that the animation is playing faster, or could it be that the character's movement across the screen is faster?
Are you a gamer Chris? I work in the gaming industry so I might have a way to reward you for your help as the beer might have to be put on hold lol
Turns out the problem is also reproducable if you use the "Engine: Change timescale" Action to slow down time manually. Should be fixed in v1.48, which'll be out soon.
v1.48 is out - grab it while it's hot!