※Unity2019.4.6f1
private void OnValidate() { var path = UnityEditor.AssetDatabase.GetAssetPath(asset); var importer = UnityEditor.AssetImporter.GetAtPath(path) as UnityEditor.TextureImporter; if (!importer.isReadable) { importer.isReadable = true; importer.SaveAndReimport(); } }
上記の処理で下記エラーが発生していました おそらく OnValidate で Reimport するのがよくない?
Assertion failed on expression: 'gForceReimports->empty()' UnityEditor.AssetImporter:SaveAndReimport() ImageHitAlpha:OnValidate() UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
SetDirty と SaveAssets を呼び出す方法に変えたところエラーは解決しました
private void OnValidate() { var path = UnityEditor.AssetDatabase.GetAssetPath(asset); var importer = UnityEditor.AssetImporter.GetAtPath(path) as UnityEditor.TextureImporter; if (!importer.isReadable) { UnityEditor.EditorUtility.SetDirty(asset); UnityEditor.AssetDatabase.SaveAssets(); } }