public static void BuildOnePaddingData(string name, List <Vector4> paddings, List <bool> trims, bool isPoly, AtlasHierarchy hierarchy) { bool needCreate = false; string paddingPath = PathDef.UI_ASSETS_PATH + "/atlas_tp_padding.asset"; PaddingData data = AssetDatabase.LoadAssetAtPath <PaddingData>(paddingPath); if (data == null) { data = ScriptableObject.CreateInstance <PaddingData>(); needCreate = true; } data.RemoveAtlasItem(name); List <string> spriteNames = hierarchy.GetSpriteDataName(); data.AddAtlasEx(name, isPoly, spriteNames, paddings, trims); CheckAtlas(data.atlas); if (needCreate) { AssetDatabase.CreateAsset(data, paddingPath); } else { EditorUtility.SetDirty(data); AssetDatabase.SaveAssets(); } AssetDatabase.Refresh(); }
protected Vector4 GetPadding() { if (Application.isPlaying) { if (string.IsNullOrEmpty(SpriteName)) { return(Vector4.zero); } if (m_spritePaddings == null) { //Debug.LogError("SpritePadding error"); return(Vector4.zero); } if (m_spritePaddings.ContainsKey(SpriteName)) { return(m_spritePaddings[SpriteName]); } return(Vector4.zero); } #if UNITY_EDITOR if (!overrideSprite) { return(Vector4.zero); } if (UseSpritePacker) { return(DataUtility.GetPadding(overrideSprite)); } if (m_spritePaddings == null) { string path = PathDef.UI_ASSETS_PATH + "/atlas_tp_padding.asset"; PaddingData paddingData = AssetDatabase.LoadAssetAtPath <PaddingData>(path); m_spritePaddings = new Dictionary <string, Vector4>(); foreach (var atlas in paddingData.atlas) { foreach (var spriteInfo in atlas.sprites) { if (m_spritePaddings.ContainsKey(spriteInfo.name)) { continue; } m_spritePaddings.Add(spriteInfo.name, spriteInfo.padding); } } } Vector4 v; if (!m_spritePaddings.TryGetValue(overrideSprite.name, out v)) { //Debuger.LogError("图集错误. 白边信息缺失: sprite:" + overrideSprite.name); return(Vector4.zero); } return(v); #else return(Vector4.zero); #endif }