Vector3.Dot 点乘

static function Dot (lhs : Vector3, rhs : Vector3) : float

Description描述

Dot Product of two vectors.

两个向量的点乘积。

Returns lhs . rhs.

返回lhs . rhs。

For normalized vectors Dot returns 1 if they point in exactly the same direction; -1 if they point in completely opposite directions; and a number in between for other cases (e.g. Dot returns zero if vectors are perpendicular).

对于normalized向量,如果他们指向在完全相同的方向,Dot返回1。如果他们指向完全相反的方向,返回-1。对于其他的情况返回一个数(例如:如果是垂直的Dot返回0)。

For vectors of arbitrary length the Dot return values are similar: they get larger when the angle between vectors decreases.

对于任意长度的向量,Dot返回值是相同的:当向量之间的角度减小,它们得到更大的值。

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
	public Transform other;
	void Update() {
		if (typeof(other)) {
			Vector3 forward = transform.TransformDirection(Vector3.forward);
			Vector3 toOther = other.position - transform.position;
			if (Vector3.Dot(forward, toOther) < 0)
				print("The other transform is behind me!");

		}
	}
}
// detects if other transform is behind this object
//检测其他变换是否在这个物体的后面

var other : Transform;
function Update() {
	if (other) {
		var forward = transform.TransformDirection(Vector3.forward);
		var toOther = other.position - transform.position;
		if (Vector3.Dot(forward,toOther) < 0)
			print ("The other transform is behind me!");
	}
}
最后修改:2010年12月20日 Monday 21:40

本脚本参考基于Unity 3.4.1f5

英文部分版权属©Unity公司所有,中文部分© Unity圣典 版权所有,未经许可,严禁转载 。