Skip to content

Commit c55bcf1

Browse files
committed
add export geometry option
1 parent f66f60e commit c55bcf1

File tree

3 files changed

+50
-9
lines changed

3 files changed

+50
-9
lines changed

com.unity.formats.fbx/Editor/Sources/Recorders/FbxRecorder/FbxRecorder.cs

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77

88
namespace UnityEditor.Formats.Fbx.Exporter
99
{
10-
class FbxRecorder : GenericRecorder<FbxRecorderSettings>//GenericRecorder<FbxRecorderSettings>
10+
class FbxRecorder : GenericRecorder<FbxRecorderSettings>
1111
{
1212
public override void RecordFrame(RecordingSession ctx)
1313
{
14-
//Debug.LogWarning("Frame " + ctx.frameIndex + ": " + ctx.);
14+
1515
}
1616

1717
public override void EndRecording(RecordingSession session)
@@ -32,27 +32,51 @@ public override void EndRecording(RecordingSession session)
3232

3333
var absolutePath = FileNameGenerator.SanitizePath(ars.fileNameGenerator.BuildAbsolutePath(session));
3434
var clipName = absolutePath.Replace(FileNameGenerator.SanitizePath(Application.dataPath), "Assets");
35-
36-
//var tempClipName = System.IO.Path.ChangeExtension(clipName, ".asset");
37-
//AssetDatabase.CreateAsset(clip, tempClipName);
35+
36+
//AssetDatabase.CreateAsset(clip, clipName);
3837
#if UNITY_2018_3_OR_NEWER
3938
aInput.gameObjectRecorder.SaveToClip(clip, ars.frameRate);
4039
#else
4140
aInput.gameObjectRecorder.SaveToClip(clip);
4241
#endif
4342
var root = ((AnimationInputSettings)aInput.settings).gameObject;
4443
clip.name = "recorded_clip";
45-
Animation animator = root.AddComponent<Animation>();
44+
clip.legacy = true;
45+
Animation animator = root.GetComponent<Animation>();
46+
bool hasAnimComponent = true;
47+
if (!animator)
48+
{
49+
animator = root.AddComponent<Animation>();
50+
hasAnimComponent = false;
51+
}
52+
53+
AnimationClip[] prevAnimClips = null;
54+
if (hasAnimComponent)
55+
{
56+
prevAnimClips = AnimationUtility.GetAnimationClips(root);
57+
}
58+
4659
AnimationUtility.SetAnimationClips(animator, new AnimationClip[] { clip });
4760
var exportSettings = new ExportModelSettingsSerialize();
48-
exportSettings.SetModelAnimIncludeOption(ExportSettings.Include.Anim);
61+
var toInclude = ExportSettings.Include.ModelAndAnim;
62+
if (!ars.ExportGeometry)
63+
{
64+
toInclude = ExportSettings.Include.Anim;
65+
}
66+
exportSettings.SetModelAnimIncludeOption(toInclude);
4967
ModelExporter.ExportObject(clipName, root, exportSettings);
5068

5169

52-
Object.DestroyImmediate(animator);
70+
if (hasAnimComponent)
71+
{
72+
AnimationUtility.SetAnimationClips(animator, prevAnimClips);
73+
}
74+
else
75+
{
76+
Object.DestroyImmediate(animator);
77+
}
5378
aInput.gameObjectRecorder.ResetRecording();
5479
}
55-
5680
base.EndRecording(session);
5781
}
5882
}

com.unity.formats.fbx/Editor/Sources/Recorders/FbxRecorder/FbxRecorderSettings.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,19 @@ namespace UnityEditor.Formats.Fbx.Exporter
99
[RecorderSettings(typeof(FbxRecorder), "FBX", "fbx_recorder")]
1010
public class FbxRecorderSettings : RecorderSettings
1111
{
12+
[SerializeField] bool m_exportGeometry = true;
13+
public bool ExportGeometry
14+
{
15+
get
16+
{
17+
return m_exportGeometry;
18+
}
19+
set
20+
{
21+
m_exportGeometry = value;
22+
}
23+
}
24+
1225
[SerializeField] AnimationInputSettings m_AnimationInputSettings = new AnimationInputSettings();
1326

1427
public AnimationInputSettings animationInputSettings

com.unity.formats.fbx/Editor/Sources/Recorders/FbxRecorder/FbxRecorderSettingsEditor.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ class FbxRecorderSettingsEditor : RecorderEditor
1212
protected override void FileTypeAndFormatGUI()
1313
{
1414
EditorGUILayout.LabelField("Format", "FBX");
15+
16+
FbxRecorderSettings settings = target as FbxRecorderSettings;
17+
18+
settings.ExportGeometry = EditorGUILayout.Toggle("Export Geometry", settings.ExportGeometry);
1519
}
1620
}
1721
}

0 commit comments

Comments
 (0)