Вычтите, если число отрицательное, добавьте, если число положительное - PullRequest
0 голосов
/ 07 марта 2020

Я хочу удалить 10 из Vector3 diff x & z, если это < 0, и добавить 10, если это >= 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;

Ответы [ 2 ]

1 голос
/ 07 марта 2020

Вы можете использовать условный оператор, чтобы сделать только одно сравнение для x и z. Опять же, люди могут иметь много разных мнений о краткости, удобочитаемости и т. Д. c.

diff.x += (diff.x < 0 ? -10 : 10);
diff.z += (diff.z < 0 ? -10 : 10);
0 голосов
/ 07 марта 2020

Если ваши числа двойные, вы можете использовать Math.CopySign. Math.CopySign (x, y) имеет величину x и знак y.

diff.x += Math.CopySign( 10, diff.x);
diff.z += Math.CopySign( 10, diff.z);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...