Beispiel #1
0
    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();
    }
Beispiel #2
0
    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);
        }
    }