Exemplo n.º 1
0
    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();
    }
Exemplo n.º 2
0
    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
    }