规范化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)
*/
答案 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。