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 名として運用する。 /// ユニークである必要がある。