嘿,我正在比较2个Vector.y,但它不工作。
下面是代码。
print(last.y + " == " + controller.transform.position.y);
if (last.y == controller.transform.position.y)
打印: 0,7999999 == 0,7999999 == 0,799999999 0,7999999 == 0,7999999
你在比较浮点数。要让这些数字完全相等是很难的。Unity在编辑器中只能显示有限的小数。试着把数字四舍五入。https:/docs.unity3d.comScriptReferenceMathf.Round.html。
即:
float randomNumber = 2.543686;
randomNumber = Mathf.Round(randomNumber * 100.0) / 100.0;
将返回2. 54
根据你想要的精确程度,你也可以做到。
// 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
}