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