@@ -88,6 +88,32 @@ public void TestBasics ()
88
88
ModelExporter . ExportObject ( GetRandomFbxFilePath ( ) , character ) ;
89
89
Assert . AreEqual ( meshCount , Object . FindObjectsOfType < Mesh > ( ) . Length ) ;
90
90
}
91
+
92
+ // Test euler to quaternion conversion
93
+ {
94
+ // EulerToQuaternionZXY
95
+ var v = new Vector3 ( 50 , 45 , 190 ) ;
96
+ var quat = ModelExporter . EulerToQuaternionZXY ( v ) ;
97
+ var unityQuat = Quaternion . Euler ( v ) ;
98
+ Assert . That ( ( float ) quat . X , Is . EqualTo ( unityQuat . x ) ) ;
99
+ Assert . That ( ( float ) quat . Y , Is . EqualTo ( unityQuat . y ) ) ;
100
+ Assert . That ( ( float ) quat . Z , Is . EqualTo ( unityQuat . z ) ) ;
101
+ Assert . That ( ( float ) quat . W , Is . EqualTo ( unityQuat . w ) ) ;
102
+
103
+ // EulerToQuaternionXYZ
104
+ var fbxV = new FbxVector4 ( v . x , v . y , v . z ) ;
105
+ var xyzQuat = ModelExporter . EulerToQuaternionXYZ ( fbxV ) ;
106
+
107
+ // get the vector from the quaternion
108
+ FbxAMatrix m = new FbxAMatrix ( ) ;
109
+ m . SetR ( fbxV ) ;
110
+ var actualQuat = m . GetQ ( ) ;
111
+
112
+ // since this quaternion is XYZ instead of ZXY, it should not match the quaternion
113
+ // created with EulerToQuaternionZXY
114
+ Assert . That ( xyzQuat , Is . Not . EqualTo ( quat ) ) ;
115
+ Assert . That ( xyzQuat , Is . EqualTo ( actualQuat ) ) ;
116
+ }
91
117
}
92
118
93
119
[ Test ]
0 commit comments