Unity Mono中的奇怪规范化

时间:2018-03-18 18:28:45

标签: c# unity3d mono

规范化vector2会产生奇怪的圆形效果。我也尝试了dir / dir.magnitude但同样的结果,应该有一些明显的东西我不知道但是它是什么?

        Debug.Log(start);

        dir = (Vector2.zero - start);

        Debug.Log(dir);

        dir = dir.normalized;

        Debug.Log(dir);

        /*Output
            (19.7, 452.1)
            (-19.7, -452.1)
            (0.0, -1.0)
         */

1 个答案:

答案 0 :(得分:0)

Debug.Log(Vector)总是舍入到最接近的0.1值。所以dir.x可以是负0.04f,它仍然会被打印为0.0。

如果您运行此代码:

    Vector2 direction = new Vector2(-19.7f, -452.1f);
    Debug.Log("direction=" + direction);

    direction = direction.normalized;
    Debug.Log("direction normalized=" + direction.normalized);
    Debug.Log("direction normalized.x=" + direction.normalized.x);
    Debug.Log("direction normalized.y=" + direction.normalized.y);

它会打印

direction=(-19.7, -452.1)
direction normalized=(0.0, -1.0)
direction normalized.x=-0.04353312
direction normalized.y=-0.999052

你可以看到在Debug.Log(...)direction.x中舍入到0.0,因为它大约是-0.04353312。