ベクトルの 2 乗の長さを返します(読み取り専用)
ベクトル v
の大きさは Mathf.Sqrt(Vector3.Dot(v, v)) によって計算されます。しかし、
Sqrt の計算はとても複雑で通常の計算よりも実行に
時間がかかってしまいます。
magnitude よりも 2 乗の大きさの計算のほうがはるかに高速です -
計算は基本的に遅い Sqrt を呼び出しません。
簡単な距離を比較するためにベクトルの大きさを使用する場合、同じ結果が得られることから、
2 乗した大きさから同じように 2 乗した距離の比較を行うことができます。
See Also: magnitude.
// detects when the other transform is closer than closeDistance // this is faster than using Vector3.magnitude
var other : Transform; var closeDistance = 5.0; function Update() { if (other) { var offset = other.position - transform.position; var sqrLen = offset.sqrMagnitude; // square the distance we compare with if( sqrLen < closeDistance*closeDistance ) print ("The other transform is close to me!"); } }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Transform other; public float closeDistance = 5.0F; void Update() { if (other) { Vector3 offset = other.position - transform.position; float sqrLen = offset.sqrMagnitude; if (sqrLen < closeDistance * closeDistance) print("The other transform is close to me!"); } } }