Я пишу сценарий C# на Unity 3D. У меня есть два Vector3
, которые одинаковы. Когда я это сделаю:Сравнение двух идентичных объектов возвращает false в Unity 3D (C#)
Debug.Log(vect1);
Debug.Log(vect2);
Получаю тот же результат (500.0, 150.0, 0.0)
. Проблема в том, что когда я делаю vect1.Equals(vect2)
, я получаю ложь! Как это возможно?
P.S. Я уверен, что они оба Vector3
, потому что когда я делаю vect1.GetType()
и vect2.GetType()
Я всегда получаю Vector3
.
Забавная вещь Vector.equals (Vector) возвращает истину, если значение имеет тот же X и Y значения как этот вектор; в противном случае - false. но Vector3.equals (Vector3) возвращает true, если текущий экземпляр равен указанному объекту; в противном случае - false. –
@MeAndSomeRandoms, добро пожаловать на обед всей собаки, который является системой C# '.Equals()' и '==' C#. :( –
Может быть, хуже. По крайней мере, у нас есть MSDN! –