using UnityEngine; using System.Collections.Generic; using System; namespace XGame.Framework.Asset { public class AlphaTextureManifest : ScriptableObject, IDisposable { [SerializeField] private AtlasAlphaTextureInfo[] alphaTextureInfos; /// /// key:spriteName /// value:alphaTextureName /// private Dictionary spriteMap; public void Init() { if (alphaTextureInfos != null) { spriteMap = new Dictionary(); foreach(var info in alphaTextureInfos) { if (info.sprites != null) { foreach(var spr in info.sprites) { if (!spriteMap.ContainsKey(spr)) { spriteMap.Add(spr, info.textureName); } else { AssetsLog.Error($"Atlas Alpha Manifest Error. Sprite repeat. name:{spr} tex:{info.textureName}"); } } } } } } public bool TryGetAlphaTextureName(string spriteName, out string textureName) { if (spriteMap != null && spriteMap.TryGetValue(spriteName, out textureName)) { return true; } textureName = string.Empty; return false; } void IDisposable.Dispose() { if (spriteMap != null) { spriteMap.Clear(); spriteMap = null; } } } }