what cause 'error dt >= 0'?

current unity version 3.4.

i am play one animation and call ‘CrossFadeQueued(“two animation”, 0.15f, QueueMode.CompleteOthers, PlayMode.StopSameLayer)’.

directly change speed = 1.2f // [all animations]

error ‘dt >= 0’ …/animation.cpp at line 1982, constantly shows up.

does anyone know what could cause this?

3 Answers

3

Hi CaoF, I’ve founded these posts related to your issue:

http://answers.unity3d.com/answers/152577/view.html

Give 'em a look, seems that they could solve your problem.

thanks, BiG.

i do not speak good English.

that is solution is not match my project.

my animations is long and too slow.

i research this problem and found one problem and one solution.

// i use CrossFadeQueued(…) reason is interpolated animation time

[target : unity vertion 3.4]

CrossFadeQueued() some animations and fast speed is settings call ‘Error’.

problem)

// is shows up “dt >= 0”

for(int i = 0; i < 5; ++i)

{

animation.CrossFadeQueued("idle", 0.2f);

}

animation[“idle”].speed = 1.2f;

solution)

thinks about it, short animations can use CrossFadeQueued(…)[and not changed animation.speed]

cause error “dt >= 0” using long time animation and change speed.

i use CrossFade(…) not show error, do working perfect!

animation is interpolated time that other functions, example changeAnimation()

void Foo()

{

animation.CrossFade(strAnimationName, c_fDefaultCrossFadeDuration, PlayMode.StopSameLayer);
animation[strAnimationName].time = fDeltaSeconds;

}

thanks.

Although I founded those topics, I'm not an expert of animations, unfortunately. I'm writing this comment hoping someone will make your problem fixed. Sorry... :( any animation-experienced, out there?

–

in my case, this’s because you change the animation’s speed, and the animation’s length is smaller, it’s a error when length < fadeLength(default is 0.3F).
so, my solution is scale the fadeLength.