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

Bu blogdaki popüler yayınlar

Important Classes - Vectors

RequireComponent

Important Classes - GameObject