When destroying an Actor with a Procedural Mesh Component; that is stored in an Array Variable, the memory for that Actor's Procedural Mesh Component is not cleared, leading to a Memory Leak. However, If you make the actor into a Single Variable and destroy it, that Procedural Mesh's memory is properly cleared by Unreal's Garbage Collection.
NOTE: See attachment "MemoryLeak_Example.zip" for simplified project source replication.
Open Unreal Engine 4.20-> Create Third Person Blueprint Template.
Creating Procedural Mesh Actor
Creating a new Blueprint Player Controller
Playing in Editor
Expected: The Memory used by the Procedural Mesh Component is cleared when the Actor is destroyed.
Result: The memory usage of Unreal Engine will keeping going up while you play until your computer runs out of memory and the game/editor crashes. The actor is successfully destroyed, yet the memory taken by the mesh geometry is still remaining.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-65234 in the post.
4 |
Component | UE - Gameplay |
---|---|
Affects Versions | 4.19, 4.20, 4.21 |
Target Fix | 4.22 |
Created | Oct 15, 2018 |
---|---|
Resolved | Dec 11, 2018 |
Updated | Dec 12, 2018 |