@@ -765,9 +765,17 @@ protected bool ExportInstance (GameObject unityGo, FbxNode fbxNode, FbxScene fbx
765
765
/// <summary>
766
766
/// Exports camera component
767
767
/// </summary>
768
- protected FbxCamera ExportCamera ( Camera unityCamera , FbxScene fbxScene , FbxNode fbxNode )
768
+ protected bool ExportCamera ( GameObject unityGO , FbxScene fbxScene , FbxNode fbxNode )
769
769
{
770
+ Camera unityCamera = unityGO . GetComponent < Camera > ( ) ;
771
+ if ( unityCamera == null ) {
772
+ return false ;
773
+ }
774
+
770
775
FbxCamera fbxCamera = FbxCamera . Create ( fbxScene . GetFbxManager ( ) , unityCamera . name ) ;
776
+ if ( fbxCamera == null ) {
777
+ return false ;
778
+ }
771
779
772
780
float aspectRatio = unityCamera . aspect ;
773
781
@@ -789,10 +797,10 @@ protected FbxCamera ExportCamera (Camera unityCamera, FbxScene fbxScene, FbxNode
789
797
fbxCamera . FocalLength . Set ( fbxCamera . ComputeFocalLength ( unityCamera . fieldOfView ) ) ;
790
798
791
799
// NearPlane
792
- fbxCamera . SetNearPlane ( unityCamera . nearClipPlane ) ;
800
+ fbxCamera . SetNearPlane ( unityCamera . nearClipPlane * 100 ) ;
793
801
794
802
// FarPlane
795
- fbxCamera . SetFarPlane ( unityCamera . farClipPlane ) ;
803
+ fbxCamera . SetFarPlane ( unityCamera . farClipPlane * 100 ) ;
796
804
797
805
// Export backgroundColor as a custom property
798
806
// NOTE: export on fbxNode so that it will show up in Maya
@@ -806,7 +814,12 @@ protected FbxCamera ExportCamera (Camera unityCamera, FbxScene fbxScene, FbxNode
806
814
MakeName ( "clearFlags" ) ,
807
815
"How the camera clears the background." ) ;
808
816
809
- return fbxCamera ;
817
+ fbxNode . SetNodeAttribute ( fbxCamera ) ;
818
+
819
+ // make the last camera exported the default camera
820
+ DefaultCamera = fbxNode . GetName ( ) ;
821
+
822
+ return true ;
810
823
}
811
824
812
825
/// <summary>
@@ -909,8 +922,8 @@ protected int ExportComponents (
909
922
910
923
ExportTransform ( unityGo . transform , fbxNode , newCenter , exportType ) ;
911
924
912
- // try exporting mesh as an instance, export regularly if we cannot
913
- if ( ! ExportInstance ( unityGo , fbxNode , fbxScene ) ) {
925
+ // try exporting mesh as an instance or camera , export regularly if we cannot
926
+ if ( ! ExportInstance ( unityGo , fbxNode , fbxScene ) && ! ExportCamera ( unityGo , fbxScene , fbxNode ) ) {
914
927
ExportMesh ( unityGo , fbxNode ) ;
915
928
}
916
929
0 commit comments