Logic problem with animation controller...

Hello I have a very simple problem which I can’t figure out a way to solve right now. I am using an float called InputMagnitude to control the walking transitions of my character. Here is an example of what my states are like in code.

void Update()
{
Standing();
}

void Standing()
{
     if(inputMagnitude > 0.2)
     {
     StartWalking();
     return;
     }
}

void StartWalking()
{
     if(inputMagnitude < 0.2)
     {
     ChooseStopAnim();
     }
}

The problem is that it never gets to the ChooseStopAnim() function because if the inputMagnitude is less than 0.2 it never leaves the Standing function…

Having a lower standing value and a higher stopping value check doesn’t work because it doesn’t always catch the space between them…

If you use Mecanim, you won’t have that problem because it’s in a walking state, so the transition leads to a standing state.

You can do the same thing with your own simple state machine.