将一个向量投影到另一个向量上。
要理解向量投影,想象一下 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); } }