diff --git a/Assets/_DDD/_Scripts/AssetPostprocessors/AssetPostprocessorSprite.cs b/Assets/_DDD/_Scripts/AssetPostprocessors/AssetPostprocessorSprite.cs index 163b83b7c..aa7773680 100644 --- a/Assets/_DDD/_Scripts/AssetPostprocessors/AssetPostprocessorSprite.cs +++ b/Assets/_DDD/_Scripts/AssetPostprocessors/AssetPostprocessorSprite.cs @@ -234,6 +234,14 @@ public static void CreateAtlas(string path, string destPath) sRGB = true, generateMipMaps = false }; + + // 저장 후 설정 반영을 위해 동기 임포트, 그리고 즉시 패킹 수행 + AssetDatabase.ImportAsset(destPath, ImportAssetOptions.ForceUpdate | ImportAssetOptions.ForceSynchronousImport); + var packedAtlas = AssetDatabase.LoadAssetAtPath(destPath); + if (packedAtlas != null) + { + SpriteAtlasUtility.PackAtlases(new[] { packedAtlas }, EditorUserBuildSettings.activeBuildTarget); + } } public static void CreateSingleAtlas(string path, string destPath) @@ -277,18 +285,34 @@ public static void CreateSingleAtlas(string path, string destPath) sRGB = true, generateMipMaps = false }; + + // 저장 후 설정 반영을 위해 동기 임포트, 그리고 즉시 패킹 수행 + AssetDatabase.ImportAsset(destPath, ImportAssetOptions.ForceUpdate | ImportAssetOptions.ForceSynchronousImport); + var packedAtlas = AssetDatabase.LoadAssetAtPath(destPath); + if (packedAtlas != null) + { + SpriteAtlasUtility.PackAtlases(new[] { packedAtlas }, EditorUserBuildSettings.activeBuildTarget); + } } public static void BuildTarget() { - foreach (var path in TargetPaths) + AssetDatabase.StartAssetEditing(); + try { - CreateAtlas(Utils.FolderPath(path), - Utils.FolderPath(path).Replace(PathConstants.RawFolderPath, PathConstants.AddressablesFolderPath) + - ExtenstionConstants.SpriteAtlasExtenstionLower); + foreach (var path in TargetPaths) + { + CreateAtlas(Utils.FolderPath(path), + Utils.FolderPath(path).Replace(PathConstants.RawFolderPath, PathConstants.AddressablesFolderPath) + + ExtenstionConstants.SpriteAtlasExtenstionLower); + } + } + finally + { + AssetDatabase.StopAssetEditing(); + AssetDatabase.Refresh(); + TargetPaths.Clear(); } - - TargetPaths.Clear(); } } }