// [UNITY-SKILL:SPRITEATLAS] // [TYPE:POSTPROCESS-ADDRESSABLES] // Generated by SpriteAtlas V2 Skill // This script builds Addressables content after atlas generation using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; using UnityEngine; #if UNITY_ADDRESSABLES using UnityEditor.AddressableAssets; using UnityEditor.AddressableAssets.Settings; using UnityEditor.AddressableAssets.Build; #endif /// /// Builds Addressables content after atlas generation /// This ensures atlases are available for on-demand loading /// public class BuildAddressablesPostprocess : IPostprocessBuildWithReport { public int callbackOrder => 1; // Run after atlas generation (callbackOrder 0) public void OnPostprocessBuild(BuildReport report) { #if UNITY_ADDRESSABLES Debug.Log("[Addressables] Building Addressables content..."); var settings = AddressableAssetSettingsDefaultObject.Settings; if (settings == null) { Debug.LogError("[Addressables] Addressables settings not found. Cannot build addressables content."); return; } try { // Build addressables content AddressableAssetSettings.BuildPlayerContent(out AddressablesPlayerBuildResult result); if (!string.IsNullOrEmpty(result.Error)) { Debug.LogError($"[Addressables] Build failed: {result.Error}"); } else { Debug.Log($"[Addressables] Build completed successfully. Duration: {result.Duration}"); } } catch (System.Exception ex) { Debug.LogError($"[Addressables] Build exception: {ex.Message}"); } #else Debug.LogWarning("[Addressables] Addressables package not installed. Skipping addressables build."); #endif } }