diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporter.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporter.cs
index b733d413c..f14ff3e0b 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporter.cs
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporter.cs
@@ -1,5 +1,3 @@
-using UnityEngine;
-using UnityEditor;
#if UNITY_2020_2_OR_NEWER
using UnityEditor.AssetImporters;
#else
@@ -10,14 +8,11 @@ using UnityEditor.Experimental.AssetImporters;
namespace UniGLTF
{
[ScriptedImporter(1, "glb")]
- public class GlbScriptedImporter : ScriptedImporter
+ public class GlbScriptedImporter : GltfScriptedImporterBase
{
- [SerializeField]
- public ScriptedImporterAxes m_reverseAxis;
-
public override void OnImportAsset(AssetImportContext ctx)
{
- ScriptedImporterImpl.Import(this, ctx, m_reverseAxis.ToAxes());
+ Import(this, ctx, m_reverseAxis.ToAxes());
}
}
}
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditorGUI.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditor.cs
similarity index 96%
rename from Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditorGUI.cs
rename to Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditor.cs
index 26c49f684..ef2914181 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditorGUI.cs
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditor.cs
@@ -14,7 +14,7 @@ using UnityEditor.Experimental.AssetImporters;
namespace UniGLTF
{
[CustomEditor(typeof(GlbScriptedImporter))]
- public class GlbScriptedImporterEditorGUI : RemapScriptedImporterEditorBase
+ public class GlbScriptedImporterEditor : RemapScriptedImporterEditorBase
{
GlbScriptedImporter m_importer;
GltfData m_data;
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterImpl.cs.meta b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditor.cs.meta
similarity index 83%
rename from Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterImpl.cs.meta
rename to Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditor.cs.meta
index 0581f26f1..d72c33751 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterImpl.cs.meta
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditor.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 85bf14b48ed135743828ee49a830b1c6
+guid: 2a09b107e404d4442adbc351d044536f
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporter.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporter.cs
index 0ed062141..2ab443cd6 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporter.cs
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporter.cs
@@ -1,5 +1,3 @@
-using UnityEngine;
-using UnityEditor;
#if UNITY_2020_2_OR_NEWER
using UnityEditor.AssetImporters;
#else
@@ -10,14 +8,11 @@ using UnityEditor.Experimental.AssetImporters;
namespace UniGLTF
{
[ScriptedImporter(1, "gltf")]
- public class GltfScriptedImporter : ScriptedImporter
+ public class GltfScriptedImporter : GltfScriptedImporterBase
{
- [SerializeField]
- public ScriptedImporterAxes m_reverseAxis = default;
-
public override void OnImportAsset(AssetImportContext ctx)
{
- ScriptedImporterImpl.Import(this, ctx, m_reverseAxis.ToAxes());
+ Import(this, ctx, m_reverseAxis.ToAxes());
}
}
}
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterImpl.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterBase.cs
similarity index 84%
rename from Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterImpl.cs
rename to Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterBase.cs
index 26822ac07..cbb75086e 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterImpl.cs
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterBase.cs
@@ -1,5 +1,6 @@
-using System.Linq;
using UnityEngine;
+using UnityEditor;
+using System.Linq;
using VRMShaders;
#if UNITY_2020_2_OR_NEWER
using UnityEditor.AssetImporters;
@@ -10,15 +11,21 @@ using UnityEditor.Experimental.AssetImporters;
namespace UniGLTF
{
- public static class ScriptedImporterImpl
+ ///
+ /// ScriptedImporterImpl から改め
+ ///
+ public abstract class GltfScriptedImporterBase : ScriptedImporter
{
+ [SerializeField]
+ public ScriptedImporterAxes m_reverseAxis = default;
+
///
/// glb をパースして、UnityObject化、さらにAsset化する
///
///
///
///
- public static void Import(ScriptedImporter scriptedImporter, AssetImportContext context, Axes reverseAxis)
+ protected static void Import(ScriptedImporter scriptedImporter, AssetImportContext context, Axes reverseAxis)
{
#if VRM_DEVELOP
Debug.Log("OnImportAsset to " + scriptedImporter.assetPath);
@@ -28,7 +35,7 @@ namespace UniGLTF
// Parse(parse glb, parser gltf json)
//
var data = new AmbiguousGltfFileParser(scriptedImporter.assetPath).Parse();
-
+
//
// Import(create unity objects)
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditorGUI.cs.meta b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterBase.cs.meta
similarity index 83%
rename from Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditorGUI.cs.meta
rename to Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterBase.cs.meta
index f20742643..b583b8078 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditorGUI.cs.meta
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterBase.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 706590752e82d004e99da97aff535f67
+guid: ae1df0d1926e49f489c74bdf6ca369b5
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditorGUI.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditor.cs
similarity index 96%
rename from Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditorGUI.cs
rename to Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditor.cs
index 4ff0358c7..a125bbc74 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditorGUI.cs
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditor.cs
@@ -14,7 +14,7 @@ using UnityEditor.Experimental.AssetImporters;
namespace UniGLTF
{
[CustomEditor(typeof(GltfScriptedImporter))]
- public class GltfScriptedImporterEditorGUI : RemapScriptedImporterEditorBase
+ public class GltfScriptedImporterEditor : RemapScriptedImporterEditorBase
{
GltfScriptedImporter m_importer;
GltfData m_data;
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditorGUI.cs.meta b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditor.cs.meta
similarity index 83%
rename from Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditorGUI.cs.meta
rename to Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditor.cs.meta
index 20e7e95c7..fcfa43bd6 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditorGUI.cs.meta
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditor.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 16c69c858a1da5e4088d72a546a2963e
+guid: 83c77bd3888dffa439b1feb6986b1b54
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/RemapEditorMaterial.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/RemapEditorMaterial.cs
index b94a2bfd6..88bdfdd42 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/RemapEditorMaterial.cs
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/RemapEditorMaterial.cs
@@ -90,7 +90,7 @@ namespace UniGLTF
.ToDictionary(kv => kv.Item1, kv => kv.Item2)
;
- var assetPath = UnityPath.FromFullpath(self.assetPath);
+ var assetPath = UnityPath.FromUnityPath(self.assetPath);
var dirName = textureDir(assetPath.Value); // $"{assetPath.FileNameWithoutExtension}.Textures";
TextureExtractor.ExtractTextures(
data,
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporter.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporter.cs
index af7819a75..668cbe3a2 100644
--- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporter.cs
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporter.cs
@@ -1,5 +1,3 @@
-using UnityEngine;
-using UnityEditor;
#if UNITY_2020_2_OR_NEWER
using UnityEditor.AssetImporters;
#else
@@ -12,14 +10,11 @@ namespace UniGLTF
#if UNIGLTF_ENABLE_ZIPARCHVIE_IMPORTER
[ScriptedImporter(1, "zip")]
#endif
- public class ZipArchivedGltfScriptedImporter : ScriptedImporter
+ public class ZipArchivedGltfScriptedImporter : GltfScriptedImporterBase
{
- [SerializeField]
- public ScriptedImporterAxes m_reverseAxis = default;
-
public override void OnImportAsset(AssetImportContext ctx)
{
- ScriptedImporterImpl.Import(this, ctx, m_reverseAxis.ToAxes());
+ Import(this, ctx, m_reverseAxis.ToAxes());
}
}
}
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporterEditor.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporterEditor.cs
new file mode 100644
index 000000000..19070ba77
--- /dev/null
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporterEditor.cs
@@ -0,0 +1,71 @@
+using UnityEditor;
+using UnityEngine;
+using System.IO;
+using System.Linq;
+#if UNITY_2020_2_OR_NEWER
+using UnityEditor.AssetImporters;
+#else
+using UnityEditor.Experimental.AssetImporters;
+#endif
+
+
+namespace UniGLTF
+{
+ [CustomEditor(typeof(ZipArchivedGltfScriptedImporter))]
+ public class ZipArchivedGltfScriptedImporterEditor : RemapScriptedImporterEditorBase
+ {
+ ZipArchivedGltfScriptedImporter m_importer;
+ GltfData m_data;
+
+ RemapEditorMaterial m_materialEditor;
+ RemapEditorAnimation m_animationEditor;
+
+ public override void OnEnable()
+ {
+ base.OnEnable();
+
+ m_importer = target as ZipArchivedGltfScriptedImporter;
+ m_data = new AmbiguousGltfFileParser(m_importer.assetPath).Parse();
+
+ var materialGenerator = new GltfMaterialDescriptorGenerator();
+ var materialKeys = m_data.GLTF.materials.Select((_, i) => materialGenerator.Get(m_data, i).SubAssetKey);
+ var textureKeys = new GltfTextureDescriptorGenerator(m_data).Get().GetEnumerable().Select(x => x.SubAssetKey);
+ m_materialEditor = new RemapEditorMaterial(materialKeys.Concat(textureKeys), GetEditorMap, SetEditorMap);
+ m_animationEditor = new RemapEditorAnimation(AnimationImporterUtil.EnumerateSubAssetKeys(m_data.GLTF), GetEditorMap, SetEditorMap);
+ }
+
+ enum Tabs
+ {
+ Model,
+ Animation,
+ Materials,
+ }
+ static Tabs s_currentTab;
+
+ public override void OnInspectorGUI()
+ {
+ s_currentTab = MeshUtility.TabBar.OnGUI(s_currentTab);
+ GUILayout.Space(10);
+
+ switch (s_currentTab)
+ {
+ case Tabs.Model:
+ base.OnInspectorGUI();
+ break;
+
+ case Tabs.Animation:
+ m_animationEditor.OnGUI(m_importer, m_data);
+ RevertApplyRemapGUI(m_importer);
+ break;
+
+ case Tabs.Materials:
+ m_materialEditor.OnGUI(m_importer, m_data,
+ new GltfTextureDescriptorGenerator(m_data),
+ assetPath => $"{Path.GetFileNameWithoutExtension(assetPath)}.Textures",
+ assetPath => $"{Path.GetFileNameWithoutExtension(assetPath)}.Materials");
+ RevertApplyRemapGUI(m_importer);
+ break;
+ }
+ }
+ }
+}
diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporterEditor.cs.meta b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporterEditor.cs.meta
new file mode 100644
index 000000000..24b311df4
--- /dev/null
+++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ZipArchivedGltfScriptedImporterEditor.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4d2f9772e8a290e47812172c7fa6f34d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: