diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/AnimationIO/IAnimationImporter.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/AnimationIO/IAnimationImporter.cs deleted file mode 100644 index 6e9a2f773..000000000 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/AnimationIO/IAnimationImporter.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; -using VRMShaders; - -namespace UniGLTF -{ - public interface IAnimationImporter - { - AnimationClip Import(glTF gltf, int i, Axes invertAxis); - } -} diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/AnimationIO/IAnimationImporter.cs.meta b/Assets/UniGLTF/Runtime/UniGLTF/IO/AnimationIO/IAnimationImporter.cs.meta deleted file mode 100644 index 83586e086..000000000 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/AnimationIO/IAnimationImporter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4f950ba9271cbff4cbc4345f5a23a5d8 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/AnimationIO/RootAnimationImporter.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/AnimationIO/RootAnimationImporter.cs deleted file mode 100644 index 980caec8a..000000000 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/AnimationIO/RootAnimationImporter.cs +++ /dev/null @@ -1,12 +0,0 @@ -using UnityEngine; - -namespace UniGLTF -{ - public sealed class RootAnimationImporter : IAnimationImporter - { - public AnimationClip Import(glTF gltf, int i, Axes invertAxis) - { - return AnimationImporterUtil.ConvertAnimationClip(gltf, gltf.animations[i], invertAxis.Create()); - } - } -} diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/AnimationIO/RootAnimationImporter.cs.meta b/Assets/UniGLTF/Runtime/UniGLTF/IO/AnimationIO/RootAnimationImporter.cs.meta deleted file mode 100644 index 2ea8cfbed..000000000 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/AnimationIO/RootAnimationImporter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 27640e6274339664ea492827be5a2217 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs index f513391e3..04bb99268 100644 --- a/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs +++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/ImporterContext.cs @@ -12,26 +12,6 @@ namespace UniGLTF /// public class ImporterContext : IDisposable { - #region Animation - protected IAnimationImporter m_animationImporter; - public void SetAnimationImporter(IAnimationImporter animationImporter) - { - m_animationImporter = animationImporter; - } - public IAnimationImporter AnimationImporter - { - get - { - if (m_animationImporter == null) - { - m_animationImporter = new RootAnimationImporter(); - } - return m_animationImporter; - } - } - - #endregion - public ITextureDescriptorGenerator TextureDescriptorGenerator { get; protected set; } public IMaterialDescriptorGenerator MaterialDescriptorGenerator { get; protected set; } public TextureFactory TextureFactory { get; } @@ -121,6 +101,13 @@ namespace UniGLTF await LoadGeometryAsync(awaitCaller, MeasureTime); + await LoadAnimationAsync(awaitCaller, MeasureTime); + + await OnLoadHierarchy(awaitCaller, MeasureTime); + } + + protected virtual async Task LoadAnimationAsync(IAwaitCaller awaitCaller, Func MeasureTime) + { using (MeasureTime("AnimationImporter")) { if (GLTF.animations != null && GLTF.animations.Any()) @@ -136,7 +123,7 @@ namespace UniGLTF } else { - clip = AnimationImporter.Import(GLTF, i, InvertAxis); + clip = AnimationImporterUtil.ConvertAnimationClip(GLTF, GLTF.animations[i], InvertAxis.Create()); AnimationClips.Add(clip); } @@ -146,10 +133,10 @@ namespace UniGLTF animation.clip = clip; } } + + await awaitCaller.NextFrame(); } } - - await OnLoadHierarchy(awaitCaller, MeasureTime); } protected virtual async Task LoadGeometryAsync(IAwaitCaller awaitCaller, Func MeasureTime)