From 09bcff8e6831e393b00d779895c97ccad8662591 Mon Sep 17 00:00:00 2001 From: ousttrue Date: Wed, 8 Sep 2021 15:23:31 +0900 Subject: [PATCH] LoadVrmThumbnailAsync --- Assets/VRM10/Runtime/IO/Vrm10Importer.cs | 28 +++++++++++++++---- .../Samples/VRM10Viewer/VRM10ViewerUI.cs | 6 +--- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/Assets/VRM10/Runtime/IO/Vrm10Importer.cs b/Assets/VRM10/Runtime/IO/Vrm10Importer.cs index d040a04e3..a55cfa5e6 100644 --- a/Assets/VRM10/Runtime/IO/Vrm10Importer.cs +++ b/Assets/VRM10/Runtime/IO/Vrm10Importer.cs @@ -306,6 +306,24 @@ namespace UniVRM10 return clip; } + public async Task LoadVrmThumbnailAsync(IAwaitCaller awaitCaller = null) + { + if (awaitCaller == null) + { + awaitCaller = new TaskCaller(); + } + + if (Vrm10TextureDescriptorGenerator.TryGetMetaThumbnailTextureImportParam(Data, m_vrm.VrmExtension, out (SubAssetKey, VRMShaders.TextureDescriptor Param) kv)) + { + var texture = await TextureFactory.GetTextureAsync(kv.Param, awaitCaller); + return texture as Texture2D; + } + else + { + return null; + } + } + async Task LoadVrmAsync(IAwaitCaller awaitCaller, UniGLTF.Extensions.VRMC_vrm.VRMC_vrm vrmExtension) { if (m_externalMap.TryGetValue(VRM10Object.SubAssetKey, out UnityEngine.Object obj) && obj is VRM10Object vrm) @@ -347,13 +365,11 @@ namespace UniVRM10 { meta.Authors.AddRange(src.Authors); } - if (Vrm10TextureDescriptorGenerator.TryGetMetaThumbnailTextureImportParam(Data, vrmExtension, out (SubAssetKey, VRMShaders.TextureDescriptor Param) kv)) + + var tex2D = await LoadVrmThumbnailAsync(awaitCaller); + if (tex2D != null) { - var texture = await TextureFactory.GetTextureAsync(kv.Param, awaitCaller); - if (texture is Texture2D tex2D) - { - meta.Thumbnail = tex2D; - } + meta.Thumbnail = tex2D; } } diff --git a/Assets/VRM10/Samples/VRM10Viewer/VRM10ViewerUI.cs b/Assets/VRM10/Samples/VRM10Viewer/VRM10ViewerUI.cs index ea0cb6e51..ec8f6b1b7 100644 --- a/Assets/VRM10/Samples/VRM10Viewer/VRM10ViewerUI.cs +++ b/Assets/VRM10/Samples/VRM10Viewer/VRM10ViewerUI.cs @@ -439,11 +439,7 @@ namespace UniVRM10.VRM10Viewer using (var loader = new Vrm10Importer(vrm, materialGenerator: GetVrmMaterialDescriptorGenerator(m_useUrpMaterial.isOn))) { // migrate しても thumbnail は同じ - Texture2D thumbnail = null; - if (Vrm10TextureDescriptorGenerator.TryGetMetaThumbnailTextureImportParam(data, vrm.VrmExtension, out (SubAssetKey, VRMShaders.TextureDescriptor Param) kv)) - { - thumbnail = await loader.TextureFactory.GetTextureAsync(kv.Param, new TaskCaller()) as Texture2D; - } + var thumbnail = await loader.LoadVrmThumbnailAsync(); if (vrm.OldMeta != null) {