@@ -377,5 +377,58 @@ private void CompareCameraValues(Camera camera, Camera fbxCamera, float delta=0.
377
377
Assert . AreEqual ( camera . nearClipPlane , fbxCamera . nearClipPlane , delta ) ;
378
378
Assert . AreEqual ( camera . farClipPlane , fbxCamera . farClipPlane , delta ) ;
379
379
}
380
+
381
+ [ Test ]
382
+ public void TestSkinnedMeshExport ( ) {
383
+ var fbxPath = "Cowboy/3D assets/Cowboy/cowboyMidPoly(riged).fbx" ;
384
+
385
+ // add fbx to scene
386
+ GameObject originalFbxObj = AssetDatabase . LoadMainAssetAtPath ( "Assets/" + fbxPath ) as GameObject ;
387
+ Assert . IsNotNull ( originalFbxObj ) ;
388
+ GameObject originalGO = GameObject . Instantiate ( originalFbxObj ) ;
389
+ Assert . IsTrue ( originalGO ) ;
390
+
391
+ // export fbx
392
+ // get GameObject
393
+ string filename = GetRandomFbxFilePath ( ) ;
394
+ ModelExporter . ExportObject ( filename , originalGO ) ;
395
+ GameObject fbxObj = AssetDatabase . LoadMainAssetAtPath ( filename ) as GameObject ;
396
+ Assert . IsTrue ( fbxObj ) ;
397
+
398
+ var originalSkinnedMesh = originalGO . GetComponentInChildren < SkinnedMeshRenderer > ( ) ;
399
+ Assert . IsNotNull ( originalSkinnedMesh ) ;
400
+
401
+ var exportedSkinnedMesh = fbxObj . GetComponentInChildren < SkinnedMeshRenderer > ( ) ;
402
+ Assert . IsNotNull ( exportedSkinnedMesh ) ;
403
+
404
+ Assert . IsTrue ( originalSkinnedMesh . name == exportedSkinnedMesh . name ||
405
+ ( originalSkinnedMesh . transform . parent == null && exportedSkinnedMesh . transform . parent == null ) ) ;
406
+
407
+ // check if skeletons match
408
+ // compare bones
409
+ var originalBones = originalSkinnedMesh . bones ;
410
+ var exportedBones = exportedSkinnedMesh . bones ;
411
+
412
+ Assert . IsNotNull ( originalBones ) ;
413
+ Assert . IsNotNull ( exportedBones ) ;
414
+
415
+ Assert . AreEqual ( originalBones . Length , exportedBones . Length ) ;
416
+
417
+ Debug . Log ( "bone count: " + originalBones . Length ) ;
418
+
419
+ for ( int i = 0 ; i < originalBones . Length ; i ++ ) {
420
+ var originalBone = originalBones [ i ] ;
421
+ var exportedBone = exportedBones [ i ] ;
422
+
423
+ Assert . AreEqual ( originalBone . name , exportedBone . name ) ;
424
+
425
+ Debug . Log ( "bone name: " + originalBone . name ) ;
426
+
427
+ // compare transforms
428
+ /*Assert.AreEqual(originalBone.localPosition, exportedBone.localPosition);
429
+ Assert.AreEqual (originalBone.localRotation, exportedBone.localRotation);
430
+ Assert.AreEqual (originalBone.localScale, exportedBone.localScale);*/
431
+ }
432
+ }
380
433
}
381
434
}
0 commit comments