版本: Unity 6 (6000.0)
语言English
  • C#

Vector3.Project

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

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

描述

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

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