diff --git a/Assets/VRM10/Runtime/IO/Vrm10.cs b/Assets/VRM10/Runtime/IO/Vrm10.cs index 80e6fa31a..fc636e5c5 100644 --- a/Assets/VRM10/Runtime/IO/Vrm10.cs +++ b/Assets/VRM10/Runtime/IO/Vrm10.cs @@ -52,7 +52,11 @@ namespace UniVRM10 ? new RuntimeOnlyAwaitCaller() : new ImmediateCaller(); - using var gltfData = new GlbLowLevelParser(path, File.ReadAllBytes(path)).Parse(); + using var gltfData = await awaitCaller.Run(() => + { + var bytes = File.ReadAllBytes(path); + return new GlbLowLevelParser(path, bytes).Parse(); + }); return await LoadAsync( gltfData, canLoadVrm0X, @@ -96,7 +100,7 @@ namespace UniVRM10 ? new RuntimeOnlyAwaitCaller() : new ImmediateCaller(); - using var gltfData = new GlbLowLevelParser(string.Empty, bytes).Parse(); + using var gltfData = await awaitCaller.Run(() => new GlbLowLevelParser(string.Empty, bytes).Parse()); return await LoadAsync( gltfData, canLoadVrm0X, diff --git a/Assets/VRM10/Tests/Vrm10ApiTests.cs b/Assets/VRM10/Tests/Vrm10ApiTests.cs new file mode 100644 index 000000000..d29dcd45c --- /dev/null +++ b/Assets/VRM10/Tests/Vrm10ApiTests.cs @@ -0,0 +1,20 @@ +using NUnit.Framework; +using VRMShaders; + +namespace UniVRM10.Test +{ + public sealed class Vrm10ApiTests + { + [Test] + public void LoadImmediately() + { + var loadTask = Vrm10.LoadPathAsync( + TestAsset.AliciaPath, + canLoadVrm0X: true, + awaitCaller: new ImmediateCaller() + ); + + Assert.AreEqual(true, loadTask.IsCompleted); + } + } +} \ No newline at end of file diff --git a/Assets/VRM10/Tests/Vrm10ApiTests.cs.meta b/Assets/VRM10/Tests/Vrm10ApiTests.cs.meta new file mode 100644 index 000000000..0cda7db50 --- /dev/null +++ b/Assets/VRM10/Tests/Vrm10ApiTests.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6bf6de3c68bf4a5994e2b5739f60b913 +timeCreated: 1716261790 \ No newline at end of file