Unity 6.3
0 онлайн 44 гостей 3 в системе
Вход

Quaternion.Equals

Declaration

public bool Equals(object other);
public bool Equals(Quaternion other);

Параметры

Параметр Описание
прочие Кватернион для сравнения.

Возвращаемое значение

логическое true если компоненты кватерниона (x, y, z, w) точно равны.

Описание

Выполняет точное двоичное сравнение каждого компонента кватерниона (x, y, z, w).

Основные сравнительные характеристики:

  • Точные копии: Возвращает true, когда кватернионы являются идентичными копиями.
  • Точность с плавающей запятой: Возвращает false даже при небольших различиях, вызванных арифметикой с плавающей запятой.
  • Математически эквивалентные повороты: Возвращает false для поворотов, которые представляют одну и ту же ориентацию, но имеют разные значения компонентов.

Для практического сравнения вращения, рассмотрите возможность использования оператора ==, который использует произведение точек с допуском для приближенного равенства.

using UnityEngine;

public class QuaternionEqualsExample : MonoBehaviour { void Start() { // Exact copies - Equals() returns true Quaternion q1 = Quaternion.identity; Quaternion q2 = q1; Debug.Log($"Exact copies - Equals(): {q1.Equals(q2)}"); // True // Small floating point differences - Equals() returns false Quaternion q3 = Quaternion.Euler(90f, 0f, 0f); Quaternion q4 = Quaternion.Euler(90.0001f, 0f, 0f); Debug.Log($"Small difference - Equals(): {q3.Equals(q4)}"); // False Debug.Log($"Small difference - == operator: {q3 == q4}"); // True (tolerance-based) // Combine both methods for robust comparison Debug.Log($"Combined check: {q3.Equals(q4) || (q3 == q4)}"); // True } }