Apologies for the long delay on this issue, and thanks very much for taking the time to send us the reproduction project. After digging into it, I can see that Settings.OnEnable() is being called on an object that is already initialized, which is unexpected. This seems to be caused by the combination of two things:
- The Actor Name Enforcer script on the Test prefab has an
OnValidate()method that modifies the prefab. - The GUID used by
FMODStudioSettings.assetis broken somehow (changing the GUID inFMODStudioSettings.asset.metamakes the problem go away).
Since I don’t have access to the Unity source code, I can only speculate on the reason for Unity calling Settings.OnEnable() unexpectedly in this situation. I suspect that the OnValidate() method modifying the prefab marks it as dirty, triggering a reimport cycle that the Settings object gets caught up in because its GUID collides with that of some internal Unity object.
Regardless of the exact cause, we have implemented a fix that ignores any Settings.OnEnable() calls on objects that are already initialized. This fix will be in the next release, or I can send you an updated Settings.cs file if you prefer.