I'll add to my question: I did a simple mechanic today. I used Collide2dEvent, SetFloat and Wait actions. Here's the idea: when my player comes in contact with a certain collider, he sort of "moves away" from it (because it's dark and the player needs to take the candle first). That is, when a collision is detected, I just use SetFloat EveryFrame (Float is the player's speed, its global playmaker variable). And here's the question: in 9 out of 10 cases it worked. But one time, no matter how I tried, the mechanics didn't work. Only restarting the scene helped. Why is this happened? Because of Global veriable? So why it works correctrly now? Too many questions too few answers, huh