我正在 Unity 3D 上编写 C# 脚本。我有两个相同的 Vector3
。当我这样做时:
Debug.Log(vect1);
Debug.Log(vect2);
我得到相同的结果 (500.0, 150.0, 0.0)
。问题是,当我执行 vect1.Equals(vect2)
时,我得到了 false!怎么可能?
附言
我确定它们都是 Vector3
,因为当我执行 vect1.GetType()
和 vect2.GetType()
时,我总是得到 Vector3
.
最佳答案
尽管是 struct
,Vector3
通过身份比较实现了 Equals
。换句话说,vect1
只有在它们是同一实例时才会等于 vect2
。
但是,Vector3
确实实现了 ==
来测试值是否相等,因此请改用它。
参见 https://msdn.microsoft.com/en-us/library/vstudio/ms128863%28v=vs.90%29.aspx了解详情。
关于c# - 比较两个相同的对象在 Unity 3D 中返回 false (c#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30353438/