From 13853d5fb54d041eca7ea3322d234f0d93a18b5a Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sun, 8 Oct 2023 16:01:34 +0200 Subject: [PATCH] Fix model asset previews to wait for materials to be loaded --- Source/Editor/Content/Proxy/ModelProxy.cs | 6 ++++++ Source/Editor/Content/Proxy/SkinnedModelProxy.cs | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/Source/Editor/Content/Proxy/ModelProxy.cs b/Source/Editor/Content/Proxy/ModelProxy.cs index 845cbc80b..c78863e5e 100644 --- a/Source/Editor/Content/Proxy/ModelProxy.cs +++ b/Source/Editor/Content/Proxy/ModelProxy.cs @@ -87,6 +87,12 @@ namespace FlaxEditor.Content // Check if asset is streamed enough var asset = (Model)request.Asset; + var slots = asset.MaterialSlots; + foreach (var slot in slots) + { + if (slot.Material && !slot.Material.IsLoaded) + return false; + } return asset.LoadedLODs >= Mathf.Max(1, (int)(asset.LODs.Length * ThumbnailsModule.MinimumRequiredResourcesQuality)); } diff --git a/Source/Editor/Content/Proxy/SkinnedModelProxy.cs b/Source/Editor/Content/Proxy/SkinnedModelProxy.cs index f0193d0d0..4fd71e933 100644 --- a/Source/Editor/Content/Proxy/SkinnedModelProxy.cs +++ b/Source/Editor/Content/Proxy/SkinnedModelProxy.cs @@ -62,6 +62,12 @@ namespace FlaxEditor.Content var lods = asset.LODs.Length; if (asset.IsLoaded && lods == 0) return true; // Skeleton-only model + var slots = asset.MaterialSlots; + foreach (var slot in slots) + { + if (slot.Material && !slot.Material.IsLoaded) + return false; + } return asset.LoadedLODs >= Mathf.Max(1, (int)(lods * ThumbnailsModule.MinimumRequiredResourcesQuality)); }