diff --git a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterEditorGUI.cs b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterEditorGUI.cs
index 49e7a2bd1..443cc4dba 100644
--- a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterEditorGUI.cs
+++ b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterEditorGUI.cs
@@ -27,8 +27,7 @@ namespace UniVRM10
base.OnEnable();
m_importer = target as VrmScriptedImporter;
- m_message = VrmScriptedImporterImpl.TryParseOrMigrate(m_importer.assetPath, m_importer.MigrateToVrm1, out m_parser);
- if (!string.IsNullOrEmpty(m_message))
+ if (!VrmScriptedImporterImpl.TryParseOrMigrate(m_importer.assetPath, m_importer.MigrateToVrm1, out m_parser, out m_message))
{
// error
return;
diff --git a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterImpl.cs b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterImpl.cs
index 09ac8dda3..1107ec3b9 100644
--- a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterImpl.cs
+++ b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterImpl.cs
@@ -22,7 +22,7 @@ namespace UniVRM10
///
///
///
- public static string TryParseOrMigrate(string path, bool migrateToVrm1, out GltfParser parser)
+ public static bool TryParseOrMigrate(string path, bool migrateToVrm1, out GltfParser parser, out string error)
{
//
// Parse(parse glb, parser gltf json)
@@ -32,12 +32,14 @@ namespace UniVRM10
if (UniGLTF.Extensions.VRMC_vrm.GltfDeserializer.TryGet(parser.GLTF.extensions, out UniGLTF.Extensions.VRMC_vrm.VRMC_vrm vrm))
{
// success
- return default;
+ error = default;
+ return true;
}
if (!migrateToVrm1)
{
- return "vrm1 not found";
+ error = "vrm1 not found";
+ return false;
}
// try migrateion
@@ -49,22 +51,26 @@ namespace UniVRM10
var json = glb.Json.Bytes.ParseAsJson();
if (!json.TryGet("extensions", out JsonNode extensions))
{
- return "no gltf.extensions";
+ error = "no gltf.extensions";
+ return false;
}
if (!extensions.TryGet("VRM", out JsonNode vrm0))
{
- return "vrm0 not found";
+ error = "vrm0 not found";
+ return false;
}
migrated = MigrationVrm.Migrate(json, glb.Binary.Bytes);
if (migrated == null)
{
- return "cannot migrate";
+ error = "cannot migrate";
+ return false;
}
}
catch (Exception ex)
{
- return $"migration error: {ex}";
+ error = $"migration error: {ex}";
+ return false;
}
parser = new GltfParser();
@@ -72,11 +78,12 @@ namespace UniVRM10
if (UniGLTF.Extensions.VRMC_vrm.GltfDeserializer.TryGet(parser.GLTF.extensions, out vrm))
{
// success
- return default;
+ error = default;
+ return true;
}
- parser = default;
- return "migrate but no vrm1. unknown";
+ error = "migrate but no vrm1. unknown";
+ return false;
}
public static void Import(ScriptedImporter scriptedImporter, AssetImportContext context, bool migrateToVrm1)
@@ -85,8 +92,7 @@ namespace UniVRM10
Debug.Log("OnImportAsset to " + scriptedImporter.assetPath);
#endif
- var message = TryParseOrMigrate(scriptedImporter.assetPath, migrateToVrm1, out GltfParser parser);
- if (!string.IsNullOrEmpty(message))
+ if (!TryParseOrMigrate(scriptedImporter.assetPath, migrateToVrm1, out GltfParser parser, out string message))
{
// fail to parse vrm1
return;