更新 Source/FLESH/Private/Gore/InternalOrganSystem.cpp
This commit is contained in:
@@ -48,7 +48,7 @@ UStaticMeshComponent* UInternalOrganSystem::AddInternalOrgan(const FOrganData& O
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create a new static mesh component
|
// 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);
|
OrganComponent->SetStaticMesh(OrganData.Mesh);
|
||||||
|
|
||||||
// Set the material if provided
|
// 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)
|
UStaticMesh* UInternalOrganSystem::CreateTubeMesh(const FVector& Start, const FVector& End, float Radius, int32 Segments)
|
||||||
{
|
{
|
||||||
// Create procedural mesh component for generation
|
// 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
|
// Calculate tube direction and length
|
||||||
FVector Direction = (End - Start).GetSafeNormal();
|
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);
|
ProcMesh->CreateMeshSection_LinearColor(0, Vertices, Triangles, Normals, UVs, TArray<FLinearColor>(), Tangents, true);
|
||||||
|
|
||||||
// Convert procedural mesh to static mesh
|
// Convert procedural mesh to static mesh
|
||||||
UStaticMesh* StaticMesh = NewObject<UStaticMesh>(this);
|
UStaticMesh* StaticMesh = NewObject<UStaticMesh>(this, TEXT("OrganTubeStaticMesh"), EObjectFlags::RF_Transient);
|
||||||
UBodySetup* BodySetup = NewObject<UBodySetup>(StaticMesh);
|
UBodySetup* BodySetup = NewObject<UBodySetup>(StaticMesh, TEXT("OrganTubeBodySetup"), EObjectFlags::RF_Transient);
|
||||||
StaticMesh->AddSourceModel(); // 不需要保存返回值
|
StaticMesh->AddSourceModel(); // No need to save return value
|
||||||
StaticMesh->CreateBodySetup();
|
StaticMesh->CreateBodySetup();
|
||||||
|
|
||||||
// TODO: Convert procedural mesh to static mesh
|
// TODO: Convert procedural mesh to static mesh
|
||||||
|
Reference in New Issue
Block a user