@@ -323,5 +323,59 @@ public void TestExporterCallbacks()
323
323
assetMesh = asset . transform . Find ( "Parent2" ) . GetComponent < MeshFilter > ( ) . sharedMesh ;
324
324
Assert . AreEqual ( sphereMesh . triangles . Length , assetMesh . triangles . Length ) ;
325
325
}
326
+
327
+ [ Test ]
328
+ public void TestExportCamera ( ) {
329
+ // create a Unity camera
330
+ GameObject cameraObj = new GameObject ( "TestCamera" ) ;
331
+ Camera camera = cameraObj . AddComponent < Camera > ( ) ;
332
+
333
+ // change some of the default settings
334
+ camera . orthographic = false ;
335
+ camera . aspect = 0.5f ;
336
+ camera . fieldOfView = 17.5f ;
337
+ camera . nearClipPlane = 1.2f ;
338
+ camera . farClipPlane = 1345 ;
339
+
340
+ // export the camera
341
+ string filename = GetRandomFbxFilePath ( ) ;
342
+ var fbxCamera = ExportCamera ( filename , cameraObj ) ;
343
+ CompareCameraValues ( camera , fbxCamera ) ;
344
+
345
+ // test export orthographic camera
346
+ camera . orthographic = true ;
347
+ camera . aspect = 1.2f ;
348
+ camera . fieldOfView = 78 ;
349
+ camera . nearClipPlane = 19 ;
350
+ camera . farClipPlane = 500.6f ;
351
+
352
+ fbxCamera = ExportCamera ( filename , cameraObj ) ;
353
+ CompareCameraValues ( camera , fbxCamera ) ;
354
+ Assert . AreEqual ( camera . orthographicSize , fbxCamera . orthographicSize ) ;
355
+ }
356
+
357
+ /// <summary>
358
+ /// Exports the camera.
359
+ /// </summary>
360
+ /// <returns>The exported camera.</returns>
361
+ /// <param name="filename">Filename.</param>
362
+ /// <param name="cameraObj">Camera object.</param>
363
+ private Camera ExportCamera ( string filename , GameObject cameraObj ) {
364
+ ModelExporter . ExportObject ( filename , cameraObj ) ;
365
+
366
+ GameObject fbxObj = AssetDatabase . LoadMainAssetAtPath ( filename ) as GameObject ;
367
+ var fbxCamera = fbxObj . GetComponent < Camera > ( ) ;
368
+
369
+ Assert . IsNotNull ( fbxCamera ) ;
370
+ return fbxCamera ;
371
+ }
372
+
373
+ private void CompareCameraValues ( Camera camera , Camera fbxCamera ) {
374
+ Assert . AreEqual ( camera . orthographic , fbxCamera . orthographic ) ;
375
+ Assert . AreEqual ( camera . aspect , fbxCamera . aspect ) ;
376
+ Assert . AreEqual ( camera . fieldOfView , fbxCamera . fieldOfView ) ;
377
+ Assert . AreEqual ( camera . nearClipPlane , fbxCamera . nearClipPlane ) ;
378
+ Assert . AreEqual ( camera . farClipPlane , fbxCamera . farClipPlane ) ;
379
+ }
326
380
}
327
381
}
0 commit comments