ベクトルを別のベクトルに投影します。
ベクトルの投影を理解するには、onNormal
がその方向の直線上に静止していると想像してみてください。
ラインは vector
の先の位置からもっとも近い位置のどこかです。
投影は onNormal
に再スケーリングされライン上の位置に到達します。onNormal
がほぼ 0 である場合、この関数は 0 ベクトルを返します。
プロジェクションの使用例として、ターゲットのオブジェクトにできるだけ近くなるようにスライドさせる必要がある Rail-Mounted Gun がそのひとつの例にあたります。
対象物のプロジェクションに沿って
リジッドボディに力を適用することでオブジェクトの gun を動かすことができます。
function Slide(target: Transform, railDirection: Vector3) { var heading = target.position - transform.position; var force = Vector3.Project(heading, railDirection); GetComponent.<Rigidbody>().AddForce(force); }
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); } }