比较Vector.y

问题描述 投票:-2回答:1

嘿,我正在比较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

c# visual-studio unity3d vector
1个回答
0
投票

你在比较浮点数。要让这些数字完全相等是很难的。Unity在编辑器中只能显示有限的小数。试着把数字四舍五入。https:/docs.unity3d.comScriptReferenceMathf.Round.html。

即:

float randomNumber = 2.543686;

randomNumber = Mathf.Round(randomNumber * 100.0) / 100.0;

将返回2. 54


0
投票

根据你想要的精确程度,你也可以做到。

// 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
}
© www.soinside.com 2019 - 2024. All rights reserved.