Описание
Возвращает квадрат длины этого вектора (только для чтения).
Величина вектора v
вычисляется как Mathf.Sqrt(Vector3.Dot(v, v)). Однако вычисление Sqrt довольно сложное и занимает больше времени, чем обычные арифметические операции.
Вычисление квадрата величины вместо использования свойства величины происходит намного быстрее — вычисление в основном такое же, только без медленного вызова Sqrt. Если вы используете величины просто для сравнения расстояний, то вы также можете сравнивать квадраты величин с квадратами расстояний, поскольку сравнение даст тот же результат.
Смотрите так же: magnitude.
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
// определяет, когда другое преобразование ближе, чем closeDistance
// это быстрее, чем использование Vector3.magnitude
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!");
}
}
}
}