nix*_*x86 5 c# unity-game-engine
我正在 Unity 3D 上编写 C# 脚本。我有两个Vector3相同的。当我做:
Debug.Log(vect1);
Debug.Log(vect2);
Run Code Online (Sandbox Code Playgroud)
我得到同样的结果(500.0, 150.0, 0.0)。问题是,当我这么做的时候,vect1.Equals(vect2)我就会犯错!这怎么可能?
PS 我确信它们都是,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。