Я хочу удалить 10 из Vector3 diff x & z, если это < 0, и добавить 10, если это >= 0. Есть ли лучший способ сделать это?
Vector3 diff
x
z
< 0
>= 0
if (diff.x < 0) diff.x -= 10; else if (diff.x >= 0) diff.x += 10; if (diff.z < 0) diff.z -= 10; else if (diff.z >= 0) diff.z += 10;
Вы можете использовать условный оператор, чтобы сделать только одно сравнение для x и z. Опять же, люди могут иметь много разных мнений о краткости, удобочитаемости и т. Д. c.
diff.x += (diff.x < 0 ? -10 : 10); diff.z += (diff.z < 0 ? -10 : 10);
Если ваши числа двойные, вы можете использовать Math.CopySign. Math.CopySign (x, y) имеет величину x и знак y.
diff.x += Math.CopySign( 10, diff.x); diff.z += Math.CopySign( 10, diff.z);