Эй, я сравниваю 2 Vector.y's, но он не работает!
Вот код:
print(last.y + " == " + controller.transform.position.y); if (last.y == controller.transform.position.y)
Печать: 0,7999999 == 0,7999999
В зависимости от того, насколько вы хотите, вы также можете сделать:
// If absolute difference between last y and controller pos y is less than 0.0001 if (Mathf.abs(last.y - controller.transformer.position.y) < 0.0001f) { // do something }
Вы сравниваете числа с плавающей запятой. Получить их ровно сложно. Unity показывает только ограниченное количество десятичных знаков в редакторе. Попробуйте округлить числа. https://docs.unity3d.com/ScriptReference/Mathf.Round.html
Т.е.:
float randomNumber = 2.543686; randomNumber = Mathf.Round(randomNumber * 100.0) / 100.0;
вернет 2,54