FMOD: Cleaning up duplicate platform warning

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.asset is broken somehow (changing the GUID in FMODStudioSettings.asset.meta makes 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.