更新 Source/FLESH/Private/Gore/InternalOrganSystem.cpp

This commit is contained in:
2025-04-21 17:59:27 +08:00
parent b7f2056dbe
commit 305c0c8f4b

View File

@@ -48,7 +48,7 @@ UStaticMeshComponent* UInternalOrganSystem::AddInternalOrgan(const FOrganData& O
}
// Create a new static mesh component
UStaticMeshComponent* OrganComponent = NewObject<UStaticMeshComponent>(Owner);
UStaticMeshComponent* OrganComponent = NewObject<UStaticMeshComponent>(Owner, *FString::Printf(TEXT("OrganComponent_%d"), static_cast<int32>(OrganData.OrganType)), EObjectFlags::RF_Transient);
OrganComponent->SetStaticMesh(OrganData.Mesh);
// Set the material if provided
@@ -274,7 +274,7 @@ void UInternalOrganSystem::ExposeInternalOrgansAtCut(const FVector& CutLocation,
UStaticMesh* UInternalOrganSystem::CreateTubeMesh(const FVector& Start, const FVector& End, float Radius, int32 Segments)
{
// Create procedural mesh component for generation
UProceduralMeshComponent* ProcMesh = NewObject<UProceduralMeshComponent>(this);
UProceduralMeshComponent* ProcMesh = NewObject<UProceduralMeshComponent>(this, TEXT("OrganTubeProcMesh"), EObjectFlags::RF_Transient);
// Calculate tube direction and length
FVector Direction = (End - Start).GetSafeNormal();
@@ -366,9 +366,9 @@ UStaticMesh* UInternalOrganSystem::CreateTubeMesh(const FVector& Start, const FV
ProcMesh->CreateMeshSection_LinearColor(0, Vertices, Triangles, Normals, UVs, TArray<FLinearColor>(), Tangents, true);
// Convert procedural mesh to static mesh
UStaticMesh* StaticMesh = NewObject<UStaticMesh>(this);
UBodySetup* BodySetup = NewObject<UBodySetup>(StaticMesh);
StaticMesh->AddSourceModel(); // 不需要保存返回值
UStaticMesh* StaticMesh = NewObject<UStaticMesh>(this, TEXT("OrganTubeStaticMesh"), EObjectFlags::RF_Transient);
UBodySetup* BodySetup = NewObject<UBodySetup>(StaticMesh, TEXT("OrganTubeBodySetup"), EObjectFlags::RF_Transient);
StaticMesh->AddSourceModel(); // No need to save return value
StaticMesh->CreateBodySetup();
// TODO: Convert procedural mesh to static mesh