public static void CreateMapInfo(UnityEngine.Object[] sprites, string savepath)
    {
        CharInfoA[] tmp = new CharInfoA[16];
        for (int i = 0; i < 16; i++)
        {
            tmp[i]     = new CharInfoA();
            tmp[i].len = i + 1;
        }
        CharUV uv = new CharUV();

        unsafe
        {
            fixed(byte *bp = &buff[0])
            {
                for (int i = 0; i < sprites.Length; i++)
                {
                    var sp = sprites[i] as Sprite;
                    if (sp != null)
                    {
                        int   len = AddSpriteInfo(sp);
                        var   dat = tmp[len - 1].dat;
                        char *cp  = (char *)bp;
                        for (int j = 0; j < len; j++)
                        {
                            dat.Add(*cp);
                            cp++;
                        }
                        CalculUV(sp.rect, sp.texture.width, sp.texture.height, ref uv);
                        tmp[len - 1].uvs.Add(uv);
                    }
                }
            }
        }
        DataBuffer db   = new DataBuffer();
        FakeStruct fake = new FakeStruct(db, 16);

        for (int i = 0; i < 16; i++)
        {
            var        t  = tmp[i];
            FakeStruct fs = new FakeStruct(db, 3);
            fs[0] = t.len;
            if (tmp[i].dat.Count > 0)
            {
                fs[1] = db.AddArray <char>(t.dat.ToArray());
                fs[2] = db.AddArray <CharUV>(t.uvs.ToArray());
            }
            fake.SetData(i, fs);
        }
        db.fakeStruct = fake;
        byte[] data = db.ToBytes();
        File.WriteAllBytes(savepath, data);
        Debug.Log("emoji info create done");
    }
    static void CalculUV(Rect sr, float w, float h, ref CharUV uv)
    {
        float x  = sr.x;
        float rx = sr.width + x;
        float y  = sr.y;
        float ty = sr.height + y;

        x       /= w;
        rx      /= w;
        y       /= h;
        ty      /= h;
        uv.uv0.x = x;
        uv.uv0.y = ty;
        uv.uv1.x = rx;
        uv.uv1.y = ty;
        uv.uv2.x = rx;
        uv.uv2.y = y;
        uv.uv3.x = x;
        uv.uv3.y = y;
    }