unity3d 如何缩短Vector3而不改变其方向?

oxf4rvwz  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(123)

我需要使一个对象跟随鼠标位置,但对象应该更接近相机。
我试着将rayCastHit Vector归一化,然后乘以它。我做的另一件事是将rayCastHit Vector除以某个num。这两种方法都不起作用。

Vector3 vector = new Vector3(1, 2, 3);
Vector3 vector1 = new Vector3(1, 4, 5);
Gizmos.color = Color.red;
Gizmos.DrawLine(vector1, vector.normalized);

Gizmos.color = Color.green;
Gizmos.DrawLine(vector1, vector.normalized  * 2);

5gfr0r5j

5gfr0r5j1#

Gizmos.DrawLine需要开始和结束位置
你似乎在传递一个起始位置和一个方向。
要么

Gizmos.DrawLine(vector1, vector1 + vector.normalized * 2);

或者使用Gizmos.DrawRay代替,它采用起始位置和方向

Gizmos.DrawRay(vector1, vector.normalized * 2);

或者,如果vector实际上是一个你更想做的结束位置

Gizmos.DrawLine(vector1, vector1 + (vector - vector1).normalized * 2);

或相应

Gizmos.DrawRay(vector1, (vector - vector1).normalized * 2);

相关问题