diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SharedPreview/SharedPreviewUtils.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SharedPreview/SharedPreviewUtils.cpp index d0e288d239..7fbe374286 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SharedPreview/SharedPreviewUtils.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SharedPreview/SharedPreviewUtils.cpp @@ -22,9 +22,9 @@ namespace AZ { namespace SharedPreviewUtils { - AZStd::unordered_set GetSupportedAssetTypes() + AZStd::vector GetSupportedAssetTypes() { - return { RPI::AnyAsset::RTTI_Type(), RPI::MaterialAsset::RTTI_Type(), RPI::ModelAsset::RTTI_Type() }; + return { RPI::ModelAsset::RTTI_Type(), RPI::MaterialAsset::RTTI_Type(), RPI::AnyAsset::RTTI_Type() }; } bool IsSupportedAssetType(AzToolsFramework::Thumbnailer::SharedThumbnailKey key) @@ -46,11 +46,15 @@ namespace AZ foundIt, &AzToolsFramework::AssetSystemRequestBus::Events::GetAssetsProducedBySourceUUID, sourceKey->GetSourceUuid(), productsAssetInfo); - for (const auto& assetInfo : productsAssetInfo) + // Search the product assets for a matching asset type ID in the order of the supported type IDs, which are organized by priority + for (const auto& typeId : supportedTypeIds) { - if (supportedTypeIds.find(assetInfo.m_assetType) != supportedTypeIds.end()) + for (const auto& assetInfo : productsAssetInfo) { - return assetInfo; + if (assetInfo.m_assetType == typeId) + { + return assetInfo; + } } } return AZ::Data::AssetInfo(); @@ -59,7 +63,8 @@ namespace AZ // if it's a product thumbnail key just return its assetId AZ::Data::AssetInfo assetInfo; auto productKey = azrtti_cast(key.data()); - if (productKey && supportedTypeIds.find(productKey->GetAssetType()) != supportedTypeIds.end()) + if (productKey && + AZStd::find(supportedTypeIds.begin(), supportedTypeIds.end(), productKey->GetAssetType()) != supportedTypeIds.end()) { AZ::Data::AssetCatalogRequestBus::BroadcastResult( assetInfo, &AZ::Data::AssetCatalogRequestBus::Events::GetAssetInfoById, productKey->GetAssetId()); diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SharedPreview/SharedPreviewUtils.h b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SharedPreview/SharedPreviewUtils.h index 28c9809d6d..d215271936 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SharedPreview/SharedPreviewUtils.h +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/SharedPreview/SharedPreviewUtils.h @@ -21,7 +21,7 @@ namespace AZ namespace SharedPreviewUtils { //! Get the set of all asset types supported by the shared preview - AZStd::unordered_set GetSupportedAssetTypes(); + AZStd::vector GetSupportedAssetTypes(); //! Determine if a thumbnail key has an asset supported by the shared preview bool IsSupportedAssetType(AzToolsFramework::Thumbnailer::SharedThumbnailKey key);