Skip to content

Commit 284189b

Browse files
committed
added camera export tests
+ replaced hardcoded "100" with variable
1 parent f594421 commit 284189b

File tree

2 files changed

+56
-2
lines changed

2 files changed

+56
-2
lines changed

Assets/FbxExporters/Editor/FbxExporter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -801,10 +801,10 @@ protected bool ExportCamera (GameObject unityGO, FbxScene fbxScene, FbxNode fbxN
801801
fbxCamera.FieldOfView.Set (unityCamera.fieldOfView);
802802

803803
// NearPlane
804-
fbxCamera.SetNearPlane (unityCamera.nearClipPlane*100);
804+
fbxCamera.SetNearPlane (unityCamera.nearClipPlane*UnitScaleFactor);
805805

806806
// FarPlane
807-
fbxCamera.SetFarPlane (unityCamera.farClipPlane*100);
807+
fbxCamera.SetFarPlane (unityCamera.farClipPlane*UnitScaleFactor);
808808

809809
// Export backgroundColor as a custom property
810810
// NOTE: export on fbxNode so that it will show up in Maya

Assets/FbxExporters/Editor/UnitTests/ModelExporterTest.cs

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,5 +323,59 @@ public void TestExporterCallbacks()
323323
assetMesh = asset.transform.Find("Parent2").GetComponent<MeshFilter>().sharedMesh;
324324
Assert.AreEqual(sphereMesh.triangles.Length, assetMesh.triangles.Length);
325325
}
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+
}
326380
}
327381
}

0 commit comments

Comments
 (0)