Vector3.sqrMagnitude
public float sqrMagnitude;
Açıklama
Bu vektörün kare uzunluğunu döndürür (Sadece Okunabilir).
Bir v vektörünün büyüklüğü, Mathf.Sqrt(Vector3.Dot(v, v)) olarak hesaplanır. Ancak, Sqrt hesaplaması oldukça karmaşıktır ve normal aritmetik işlemlerden daha uzun sürer. Magnitude (büyüklük) özelliğini kullanmak yerine kare büyüklüğü hesaplamak çok daha hızlıdır - hesaplama temelde aynıdır, sadece yavaş Sqrt çağrısı olmadan. Eğer büyüklükleri sadece mesafeleri karşılaştırmak için kullanıyorsanız, kare büyüklükleri mesafelerin kareleriyle karşılaştırabilirsiniz çünkü karşılaştırma aynı sonucu verecektir.
Ek kaynaklar: magnitude.
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
// Diğer dönüşümün closeDistance'dan daha yakın olduğunu algılar
// bu, Vector3.magnitude kullanmaktan daha hızlıdır
public Transform other;
public float closeDistance = 5.0f;
void Update()
{
if (other)
{
Vector3 offset = other.position - transform.position;
float sqrLen = offset.sqrMagnitude;
// karşılaştırdığımız mesafeyi kare al
if (sqrLen < closeDistance * closeDistance)
{
print("The other transform is close to me!");
}
}
}
}
Bu blog Unity Docs'un Türkçeye çevrilmiş halidir.
Yorumlar
Yorum Gönder