I noticed that the FParticleSystemLOD struct has no data members, just a static member function called CreateParticleSystemLOD(). I really don’t understand its purpose, but UParticleSystem seems to manage an array of them, one for every LOD Level. Can anyone explain what the purpose of this struct is?
Also, the UE-41560 bug only happens because the UParticleSystem::LODSettings array is marked as EditAnywhere. The user can delete items from the LODSettings array in Cascade, causing a mismatch with the size of the LODLevels array.
My fix to this bug is to just change LODSettings to VisibleAnywhere, but I am very new to the engine source code and just wanted a sanity check. I am trying to tackle this bug to get some experience coding in the engine.