public static Vector3 Project (Vector3 vector, Vector3 onNormal);

Description

将向量投影到另一个向量上。

要理解向量投影,请想象 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); } }