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 } }