Great explanation, thanks! Let me see if I have this straight. The scenario is I’m updating a RMC, modifying the vertex locations from where they currently are to where I’m telling them to be now. BeginProceduralMeshUpdate hands a reference to my worker thread which I’m creating for the purpose of calculating the new positions. Worker thread does those calculations, but instead of modifying the vertices at the reference I store the modified vertices in a new array. Then I add a pointer to this array of modified vertices into a TQueue. Then I call a delegate function back on the game thread (can I do that?) to notify that it has completed processing the vertices. This delegate function calls EndMeshSectionUpdate. This is where I’m a little lost. EndMeshSectionUpdate doesn’t take any arrays. So should I process through the modified verts and copy them over the BeginProceduralMeshUpdate vertices reference (seems redundant) or can I just swap out the root pointer for my new modified vertices list pointer?
Originally I had it setup so that my worker thread just modified the vertices reference at their location which I’m guessing was the problem because the RMC is a UObject and a separate thread cannot do that?