public static void RemoveCallback(string groupName, string spriteName, SpriteCreateNextCall callback) { if (sNextCallDic.ContainsKey(groupName)) { if (sNextCallDic[groupName].ContainsKey(spriteName)) { if (sNextCallDic[groupName][spriteName].Contains(callback)) { sNextCallDic[groupName][spriteName].Remove(callback); } } } }
public static void AddNextCall(string groupName, string spriteName, SpriteCreateNextCall callback, Texture2D texture, object atlas) { if (sGroupSprite.ContainsKey(groupName)) { if (sGroupSprite[groupName].ContainsKey(spriteName)) { callback(sGroupSprite[groupName][spriteName]); return; } else { if (sNextCallDic[groupName].ContainsKey(spriteName)) { if (!sNextCallDic[groupName][spriteName].Contains(callback)) { sNextCallDic[groupName][spriteName].Add(callback); } } else { sNextCallDic[groupName][spriteName] = new List <SpriteCreateNextCall>() { callback }; sGroupSpriteNameDic[groupName].Add(spriteName); } } } else { sGroupSprite[groupName] = new Dictionary <string, Sprite>(); sNextCallDic[groupName] = new Dictionary <string, List <SpriteCreateNextCall> >(); sGroupSpriteNameDic[groupName] = new List <string>() { spriteName }; List <SpriteCreateNextCall> calls = new List <SpriteCreateNextCall>() { callback }; sNextCallDic[groupName].Add(spriteName, calls); AtlasConfig config = new AtlasConfig(); config.texture = texture; config.atlas = atlas; sAtlasDic[groupName] = config; } AsyncCreateGroup(groupName); }