Thanks, I have now reproduced this issue. AddressableAssetSettings.BuildPlayerContent()
ends up calling PlayerBuildInterface.CompilePlayerScripts()
, which unfortunately does not call IPreprocessBuildWithReport.OnPreprocessBuild()
, which we rely on to generate the StaticPluginManager
class.
I’m still looking into a way to fix this, but as a workaround you could try making Settings.PreprocessBuild()
public, and calling it before calling AddressableAssetSettings.BuildPlayerContent()
:
FMODUnity.Settings.Instance.PreprocessBuild(BuildTarget.StandaloneWindows64, FMODUnity.Platform.BinaryType.Logging);
AddressableAssetSettings.BuildPlayerContent();
Could you put a breakpoint on EventManager.cs
line 623, and compare sourceInfo
with targetInfo
? That may shed some light on the issue.
if (!targetInfo.Exists ||
sourceInfo.Length != targetInfo.Length ||
sourceInfo.LastWriteTime != targetInfo.LastWriteTime)
{
if (targetInfo.Exists) // <------------------------------ Breakpoint here
{
targetInfo.IsReadOnly = false;
}
This sounds like the issue reported in this thread. Can you try the solution suggested there?