将向量投影到另一个向量上。
要理解向量投影,请想象 onNormal
位于一条指向其方向的线上。
这条线上有一个最靠近 vector
尖端的点。
投影不过是重新缩放 /onNormal/,以使其到达线上的那个点。
如果 onNormal
近乎为零,则该函数返回零向量。
投影的一个使用示例是轨道枪 -
它能够滑动,以尽可能地接近目标对象。
例如,可以根据目标朝轨道方向的投影通过向刚体施加力来移动枪。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void Slide(Transform target, Vector3 railDirection) {
Vector3 heading = target.position - transform.position;
Vector3 force = Vector3.Project(heading, railDirection);
GetComponent<Rigidbody>().AddForce(force);
}
}