21 #include "PhysicsEngine/BodySetup.h"
23 #include "UObject/Object.h"
33 #include "RRObjectCommon.generated.h"
267 FRRResource(
const FString& InUniqueName,
const FSoftObjectPath& InAssetPath, UObject* InAssetData)
269 : UniqueName(InUniqueName), AssetPath(InAssetPath), AssetData(InAssetData)
309 return AssetPath.ToString();
320 UObject* AssetData =
nullptr;
395 int32 ToBeAsyncLoadedResourceNum = 0;
404 bool bHasBeenAllLoaded =
false;
413 TMap<FString, FRRResource>
Data;
417 void AddResource(
const FString& InUniqueName,
const FSoftObjectPath& InAssetPath, UObject* InAssetData)
421 Data.Add(InUniqueName,
FRRResource(InUniqueName, InAssetPath, InAssetData));
447 ToBeAsyncLoadedResourceNum = 0;
449 bHasBeenAllLoaded =
false;
465 for (
auto& data : Data)
469 UBodySetup* bodySetup = Cast<UBodySetup>(data.Value.AssetData);
471 if (IsValid(bodySetup))
475 bodySetup->ClearPhysicsMeshes();
487 for (
auto& [_, resource] : Data)
491 if (resource.AssetData)
495 resource.AssetData->MarkAsGarbage();
524 static constexpr
const TCHAR* PROP_NAME_ALBEDO = TEXT(
"AlbedoTexture");
526 static constexpr
const TCHAR* PROP_NAME_ORM = TEXT(
"MergeMapInput");
528 static constexpr
const TCHAR* PROP_NAME_NORMAL = TEXT(
"MainNormalInput");
530 static constexpr
const TCHAR* PROP_NAME_MASK = TEXT(
"MaskSelection");
532 static constexpr
const TCHAR* PROP_NAME_COLOR_ALBEDO = TEXT(
"ColorAlbedo");
534 static constexpr
const TCHAR* PROP_NAME_EMISSIVE_STRENGTH = TEXT(
"EmissiveStrength");
550 FLinearColor Color = FLinearColor::Transparent;
593 UE_LOG(LogTemp, Warning, TEXT(
"Material: %s"), *Name);
595 UE_LOG(LogTemp, Display, TEXT(
"- Color: %s"), *Color.ToString());
597 UE_LOG(LogTemp, Display, TEXT(
"- AlbedoTextureNameList: %s"), *FString::Join(AlbedoTextureNameList, TEXT(
",")));
603 TEXT(
"- AlbedoColorList: %s"),
605 *FString::JoinBy(AlbedoColorList, TEXT(
","), [](
const FLinearColor& InColor) {
return InColor.ToString(); }));
607 UE_LOG(LogTemp, Display, TEXT(
"- MaskTextureName: %s"), *MaskTextureName);
609 UE_LOG(LogTemp, Display, TEXT(
"- ORMTextureName: %s"), *ORMTextureName);
611 UE_LOG(LogTemp, Display, TEXT(
"- NormalTextureName: %s"), *NormalTextureName);
621 return !Name.IsEmpty();
631 return AlbedoTextureNameList.Contains(InTextureName) || (InTextureName == MaskTextureName) ||
633 (InTextureName == ORMTextureName) || (InTextureName == NormalTextureName);