- Home /
[mecanim] conditions for float are < or > but no ==
So i use mecanim and i am (http://docs.unity3d.com/Documentation/ScriptReference/Animator.SetFloat.html) setting float property speed where 0 means no movement, 1 means full movement and 0.5 means half movement. Those are also the desired states of the property, if player wants run, then the property goes to 1 if he wants to stop it goes to 0, if he wants to walk, then we use 0.5 speed. In mecanim you can only set conditions for float "less" and "greater". What happens, if the property is exactly in between?
If speed == 0.5 then speed < 0.5 && speed > 0.5 is not true so how do i get true if the float is exactly 0.5 ?
Answer by tanoshimi · Jan 08, 2014 at 05:10 PM
You should never compare two floats for equality. Instead, it sounds like what you want to do is multiply your speed values by 100, say, and then represent them as integer values 0, 50, and 100. It's safe to have a animator condition that tests whether an integer parameter value equals something exactly.
yes i thought about this option too but sometimes i need to compare and sometimes the ==, right now when i need the exact float i use 2 conditions (num>0.99 && num<1.01)
when i need the equality it's because i'm forcing the value and when i need to know if it's greater or less it's because i'm changing the float in time by coefficient*Time.deltaTime so i'm not sure if int will be exact enough
No, you miss my point. You should never compare two floats for equality (not in $$anonymous$$ecAnim, not in C#, not in Java, not in maths class...), because you can never be sure they're exactly the same. That's just how floating point maths works - it's approximate and you cannot guarantee that a given decimal value can be exactly represented. See http://en.wikipedia.org/wiki/Floating_point#Representable_numbers.2C_conversion_and_rounding
thx for pointing to that misuse, i reworked it a bit now i don't need to compare floats in mecanim
Your answer
Follow this Question
Related Questions
Can you help solve the following error? 1 Answer
accessing animation states from animator in javascript 0 Answers
How to get length of animation in Mecanim? 1 Answer
Rotated UI animation clip 0 Answers
root motion on in place animation 0 Answers