Laurent Crivello
Laurent Crivello

Reputation: 3931

Modifying a DynamicMesh in Unreal Engine

I am creating a Dynamic Mesh (UDynamicMeshComponent) in Unreal Engine 5.5, by filling a FDynamicMesh3.

FDynamicMesh3 MyFDynamicMesh3;
MyFDynamicMesh3.AddVertex(xxx);
MyFDynamicMesh3.AddVertex(yyy);
MyFDynamicMesh3.AddVertex(zzz);
MyFDynamicMesh3.AddTriangle(ttt);
...
MyUDynamicMeshComponent->SetMesh(MoveTemp(MyFDynamicMesh3));

--> The mesh is well appearing on the screen.

However later I want to retrieve and modify few of the vertices, however I can't extract and reinject the FDynamicMesh3:
What I do:

FDynamicMesh3* MyNewFDynamicMesh3;
MyNewFDynamicMesh3=MyUDynamicMeshComponent->GetMesh();
// For debugging purposes I'm not modifying any vertex, but the MyNewFDynamicMesh3 contains the proper vertices.
MyUDynamicMeshComponent->SetMesh(MoveTemp(*MyNewFDynamicMesh3));

--> The mesh disappears.

Am I doing it the right way with MoveTemp, and anything else I'm missing to extract and reinject the mesh ?

Upvotes: 0

Views: 82

Answers (1)

Laurent Crivello
Laurent Crivello

Reputation: 3931

Solved it that way:

FDynamicMesh3 myFDynamicMesh3 = MyUDynamicMeshComponent->GetDynamicMesh()->GetMeshRef();
// Do the vertices change work        
MyUDynamicMeshComponent->SetMesh(MoveTemp(myFDynamicMesh3));

Upvotes: 0

Related Questions