diff --git a/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfParser.cs b/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfParser.cs
index 723b6ef5d..d08aad586 100644
--- a/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfParser.cs
+++ b/Assets/UniGLTF/Runtime/UniGLTF/IO/GltfParser.cs
@@ -175,6 +175,10 @@ namespace UniGLTF
RestoreOlderVersionValues();
FixMeshNameUnique();
+ foreach(var image in GLTF.images)
+ {
+ image.uri = PrepareUri(image.uri);
+ }
FixTextureNameUnique();
FixMaterialNameUnique();
FixNodeName();
@@ -230,6 +234,29 @@ namespace UniGLTF
}
}
+ ///
+ /// image.uri を前理
+ ///
+ ///
+ ///
+ public static string PrepareUri(string uri)
+ {
+ if (string.IsNullOrEmpty(uri))
+ {
+ return uri;
+ }
+
+ if (uri.StartsWith("./"))
+ {
+ // skip
+ uri = uri.Substring(2);
+ }
+
+ // %20 to ' ' etc...
+ var unescape = Uri.UnescapeDataString(uri);
+ return unescape;
+ }
+
///
/// gltfTexture.name を Unity Asset 名として運用する。
/// ユニークである必要がある。