VContainer icon indicating copy to clipboard operation
VContainer copied to clipboard

Disable Script Modifier doesn't work in some cases

Open naoya-maeda opened this issue 9 months ago • 0 comments

I've noticed that Disable Script Modifier doesn't work immediately after compilation.

In ScriptTemplateModifier.cs line 39, VContainerSettings.Instance is always null until the first VContainerSettings.OnEnable is executed.

This happens because VContainerSettings.Instance is only assigned in VContainerSettings.OnEnable when Application.isPlaying is true.

I believe we need the following fix in ScriptTemplateModifier.OnWillCreateAsset():

var settings = AssetDatabase.FindAssets($"t: {nameof(VContainerSettings)}").FirstOrDefault();
// or
// var settings = UnityEditor.PlayerSettings.GetPreloadedAssets().FirstOrDefault(x => x is VContainerSettings);
if (settings != null && settings.DisableScriptModifier)
{
    return;
}

Thank you for your consideration.

I confirmed it at current master branch (ee940efab8d92008716c568cdcfb1a388e2d4802) and Unity version is 2022.3.42f1.

naoya-maeda avatar Mar 19 '25 09:03 naoya-maeda