From 57a7a1bcdde20a3e69ccb2b4b5fa4772e290f53e Mon Sep 17 00:00:00 2001 From: NTG Date: Mon, 18 Aug 2025 16:25:53 +0900 Subject: [PATCH] =?UTF-8?q?=EC=95=84=ED=8B=80=EB=9D=BC=EC=8A=A4=20?= =?UTF-8?q?=ED=8C=A8=ED=82=B9=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AssetPostprocessorSprite.cs | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) 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(); } } }