Distance()よりsqrMagnitudeを使った方が良い理由についてまとめました。
[ 理由 ]
理由は簡単で、Distance()には処理に時間がかかるルート計算が含まれるからです。
sqrMagnitudeにはルート計算が含まれないためDistance()よりも短時間で処理できます。
[ 使用例 ]
例えば座標Aから座標Bまでの距離と座標Aから座標Cまでの距離が等しいか否かを確認するプログラムを書くとします。
Distance()を使用した場合
if(Vector3.Distance(B, A) == Vector3.Distance(C, A)) { //距離が等しい } else { //距離が等しくない }
sqrMagnitudeを使用した場合
if((B - A).sqrMagnitude == (C - A).sqrMagnitude) { //距離が等しい } else { //距離が等しくない }