Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

Vector3.sqrMagnitude

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える
public var sqrMagnitude: float;
public float sqrMagnitude;

説明

ベクトルの 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!"); } } }