public static void AggregateAtlases(PackedSpriteGroup psg) { string path = AssetDatabase.GetAssetPath(psg); string suffix = psg.name + StringExtensions.ASSET_SUFFIX; path = path.Replace(suffix, ""); Debug.Log("root path = " + path); List <string> relativePaths = new List <string>(); List <Sprite[]> sprites = new List <Sprite[]>(); Texture2D[] atlases = GetAtPath <Texture2D>(path, relativePaths, sprites); List <PackedSpriteGroup.AtlasEntry> atlasEntries = new List <PackedSpriteGroup.AtlasEntry>(); for (int i = 0; i < atlases.Length; ++i) { PackedSpriteGroup.AtlasEntry atlasEntry = new PackedSpriteGroup.AtlasEntry(); atlasEntry.RelativePath = relativePaths[i]; atlasEntry.AtlasName = atlases[i].name; atlasEntry.Sprites = sprites[i]; atlasEntries.Add(atlasEntry); } psg.Atlases = atlasEntries.ToArray(); EditorUtility.SetDirty(psg); AssetDatabase.SaveAssets(); }
public static void AggregateAllAtlases() { string[] guids = AssetDatabase.FindAssets(string.Format("t:{0}", typeof(PackedSpriteGroup))); for (int i = 0; i < guids.Length; ++i) { string guid = guids[i]; PackedSpriteGroup psg = AssetDatabase.LoadAssetAtPath <PackedSpriteGroup>(AssetDatabase.GUIDToAssetPath(guid)); AggregateAtlases(psg); } }