@@ -73,9 +73,7 @@ public void ExportComponentAttributes (MeshInfo mesh, FbxMesh fbxMesh, int[] unm
73
73
74
74
for ( int n = 0 ; n < unmergedTriangles . Length ; n ++ ) {
75
75
int unityTriangle = unmergedTriangles [ n ] ;
76
- fbxElementArray . Add ( new FbxVector4 ( - mesh . Normals [ unityTriangle ] [ 0 ] ,
77
- mesh . Normals [ unityTriangle ] [ 1 ] ,
78
- mesh . Normals [ unityTriangle ] [ 2 ] ) ) ;
76
+ fbxElementArray . Add ( CreateRightHandedFbxVector4 ( mesh . Normals [ unityTriangle ] ) ) ;
79
77
}
80
78
81
79
fbxLayer . SetNormals ( fbxLayerElement ) ;
@@ -116,9 +114,7 @@ public void ExportComponentAttributes (MeshInfo mesh, FbxMesh fbxMesh, int[] unm
116
114
117
115
for ( int n = 0 ; n < unmergedTriangles . Length ; n ++ ) {
118
116
int unityTriangle = unmergedTriangles [ n ] ;
119
- fbxElementArray . Add ( new FbxVector4 ( - mesh . Binormals [ unityTriangle ] [ 0 ] ,
120
- mesh . Binormals [ unityTriangle ] [ 1 ] ,
121
- mesh . Binormals [ unityTriangle ] [ 2 ] ) ) ;
117
+ fbxElementArray . Add ( CreateRightHandedFbxVector4 ( mesh . Binormals [ unityTriangle ] ) ) ;
122
118
}
123
119
fbxLayer . SetBinormals ( fbxLayerElement ) ;
124
120
}
@@ -134,14 +130,31 @@ public void ExportComponentAttributes (MeshInfo mesh, FbxMesh fbxMesh, int[] unm
134
130
135
131
for ( int n = 0 ; n < unmergedTriangles . Length ; n ++ ) {
136
132
int unityTriangle = unmergedTriangles [ n ] ;
137
- fbxElementArray . Add ( new FbxVector4 ( - mesh . Tangents [ unityTriangle ] [ 0 ] ,
138
- mesh . Tangents [ unityTriangle ] [ 1 ] ,
139
- mesh . Tangents [ unityTriangle ] [ 2 ] ) ) ;
133
+ fbxElementArray . Add ( CreateRightHandedFbxVector4 (
134
+ new Vector3 (
135
+ mesh . Tangents [ unityTriangle ] [ 0 ] ,
136
+ mesh . Tangents [ unityTriangle ] [ 1 ] ,
137
+ mesh . Tangents [ unityTriangle ] [ 2 ]
138
+ ) ) ) ;
140
139
}
141
140
fbxLayer . SetTangents ( fbxLayerElement ) ;
142
141
}
143
142
}
144
143
144
+ /// <summary>
145
+ /// Takes in a left-handed Vector3, and returns a right-handed FbxVector4.
146
+ /// Helper for ExportComponentAttributes()
147
+ /// </summary>
148
+ /// <returns>The right-handed FbxVector4.</returns>
149
+ private FbxVector4 CreateRightHandedFbxVector4 ( Vector3 leftHandedVector )
150
+ {
151
+ // negating the x component of the vector converts it from left to right handed coordinates
152
+ return new FbxVector4 (
153
+ - leftHandedVector [ 0 ] ,
154
+ leftHandedVector [ 1 ] ,
155
+ leftHandedVector [ 2 ] ) ;
156
+ }
157
+
145
158
/// <summary>
146
159
/// Export an Unity Texture
147
160
/// </summary>
0 commit comments