コード例 #1
0
    /// <summary>
    /// 利用TexturePack打包图集信息
    /// </summary>
    void TexturePackGUI()
    {
        EditorGUI.BeginChangeCheck();
        this.m_TPTextSheet = (EditorGUILayout.ObjectField("TP数据(Json)", this.m_TPTextSheet, typeof(TextAsset), false, new GUILayoutOption[0]) as TextAsset);
        GUILayout.Space(5);

        this.m_TextureSource = (EditorGUILayout.ObjectField("TP合图", this.m_TextureSource, typeof(Texture2D), false, new GUILayoutOption[0]) as Texture2D);
        if (EditorGUI.EndChangeCheck())
        {
            this.m_ConsoleContent = string.Empty;
        }

        if (m_TPTextSheet == null || m_TextureSource == null)
        {
            return;
        }

        GUILayout.Space(10f);

        if (GUILayout.Button("生成", new GUILayoutOption[0]))
        {
            this.m_ConsoleContent = string.Empty;
            TP.TexturePackJsonData spriteDataObject = JsonUtility.FromJson <TP.TexturePackJsonData>(this.m_TPTextSheet.text);

            m_FontSpriteInfoList = CreateSpriteInfoList(spriteDataObject);

            string text = string.Empty;
            text = EditorUtility.SaveFilePanel("保存富文本数据", new FileInfo(AssetDatabase.GetAssetPath(this.m_TPTextSheet)).DirectoryName, this.m_TPTextSheet.name, "asset");
            if (text.Length == 0)
            {
                return;
            }
            this.SaveSpriteAsset(text);
        }
    }
コード例 #2
0
    private List <TexturePackSprite> CreateSpriteInfoList(TP.TexturePackJsonData spriteDataObject)
    {
        List <TP.SpriteData>     frames = spriteDataObject.frames;
        List <TexturePackSprite> list   = new List <TexturePackSprite>();

        for (int i = 0; i < frames.Count; i++)
        {
            TexturePackSprite spriteData = new TexturePackSprite();
            spriteData.id       = i;
            spriteData.name     = Path.GetFileNameWithoutExtension(frames[i].filename);
            spriteData.hashCode = spriteData.name.GetHashCode();

            spriteData.x        = frames[i].frame.x;
            spriteData.y        = (float)this.TextureSource.height - (frames[i].frame.y + frames[i].frame.h);
            spriteData.width    = frames[i].frame.w;
            spriteData.height   = frames[i].frame.h;
            spriteData.pivot    = frames[i].pivot;
            spriteData.rotated  = frames[i].rotated;
            spriteData.xAdvance = spriteData.width;
            spriteData.scale    = 1f;
            spriteData.xOffset  = 0f - spriteData.width * spriteData.pivot.x;
            spriteData.yOffset  = spriteData.height - spriteData.height * spriteData.pivot.y;

            list.Add(spriteData);

            int pos = spriteData.name.LastIndexOf("_");

            if (pos > 0)
            {
                string key      = spriteData.name.Substring(0, pos);
                string aniIndex = spriteData.name.Substring(pos + 1, spriteData.name.Length - pos - 1);

                if (!RichTextAnimateDic.ContainsKey(key))
                {
                    RichTextAnimate richTextAnimate = new RichTextAnimate();
                    RichTextAnimateDic.Add(key, richTextAnimate);
                }

                //动画
                spriteData.animatGroup = key;
                spriteData.animatIndex = int.Parse(aniIndex);


                RichTextAnimateDic[key].animateName = key;
                RichTextAnimateDic[key].frameCount++;
                RichTextAnimateDic[key].spriteList.Add(spriteData);
            }
        }
        return(list);
    }
コード例 #3
0
    private List <BMFontSprite> CreateSpriteInfoList(TP.TexturePackJsonData spriteDataObject)
    {
        List <TP.SpriteData> frames = spriteDataObject.frames;
        List <BMFontSprite>  list   = new List <BMFontSprite>();

        for (int i = 0; i < frames.Count; i++)
        {
            BMFontSprite fontData = new BMFontSprite();
            fontData.id       = i;
            fontData.name     = Path.GetFileNameWithoutExtension(frames[i].filename);
            fontData.hashCode = fontData.name.GetHashCode();
            int num = fontData.name.IndexOf('-');

            // int ascii;
            string key = string.Empty;
            int    pos = fontData.name.LastIndexOf("_");

            if (pos == -1)
            {
                key = fontData.name;
                pos = fontData.name.Length;
            }
            else
            {
                key = fontData.name.Substring(pos + 1, fontData.name.Length - pos - 1);
            }

            fontData.key      = key;
            fontData.group    = fontData.name.Substring(0, pos);
            fontData.x        = frames[i].frame.x;
            fontData.y        = (float)this.m_TextureSource.height - (frames[i].frame.y + frames[i].frame.h);
            fontData.width    = frames[i].frame.w;
            fontData.height   = frames[i].frame.h;
            fontData.pivot    = frames[i].pivot;
            fontData.xAdvance = fontData.width;
            fontData.scale    = 1f;
            fontData.xOffset  = 0f - fontData.width * fontData.pivot.x;
            fontData.yOffset  = fontData.height - fontData.height * fontData.pivot.y;
            list.Add(fontData);
        }
        return(list);
    }