Exemple #1
0
    public void AddPng(string pngPath)
    {
        SpriteForAtlasInfo sprInfo = new SpriteForAtlasInfo();

        sprInfo.spriteName = FileTools.getBaseNameWithoutExt(pngPath);
        sprInfo.spriteGUID = FileTools.getGuidFromResFile(pngPath);
        sprInfoDict.Add(sprInfo.spriteName, sprInfo);
    }
Exemple #2
0
    private static void SetAtlasPngProps(string atlasPngPath, string atlasDataFilePath, Dictionary <string, string> pngPathDict, ref UIAtlasInfo atlasInfo)
    {
        string assetPath     = FileTools.getRelativePath(atlasPngPath);
        string assetMetaPath = assetPath + ".meta";
        string guidStr       = FileTools.getGuidFromMetaFile(assetMetaPath);

        string content   = FileTools.readFile(atlasDataFilePath);
        var    jsonData  = LitJson.JsonMapper.ToObject(content);
        int    pngWidth  = int.Parse(jsonData["meta"]["size"]["w"].ToString());
        int    pngHeight = int.Parse(jsonData["meta"]["size"]["h"].ToString());

        List <string> upContentList   = new List <string>();
        List <string> downContentList = new List <string>();
        int           index           = -1;

        foreach (string imageName in jsonData["frames"].Keys)
        {
            index++;
            string             fileId  = (21300000 + index * 2).ToString();
            SpriteForAtlasInfo sprInfo = atlasInfo.sprInfoDict[imageName];
            sprInfo.fileIDInAtlas = fileId;
            sprInfo.atlasGUID     = guidStr;
            upContentList.Add(string.Format("    {0}: {1}", fileId, imageName));
            var imageInfo   = jsonData["frames"][imageName]["frame"];
            int imageWidth  = int.Parse(imageInfo["w"].ToString());
            int imageHeight = int.Parse(imageInfo["h"].ToString());
            int imageX      = int.Parse(imageInfo["x"].ToString());
            int imageY      = int.Parse(imageInfo["y"].ToString());

            var imageSrcInfo = jsonData["frames"][imageName]["spriteSourceSize"];
            var sourceSize   = jsonData["frames"][imageName]["sourceSize"];
            int W_SIZE       = int.Parse(sourceSize["w"].ToString());
            int H_SIZE       = int.Parse(sourceSize["h"].ToString());

            int imageSrcX = int.Parse(imageSrcInfo["x"].ToString());
            int imageSrcY = int.Parse(imageSrcInfo["y"].ToString());

            float offsetX = (2 * imageSrcX + imageWidth - W_SIZE) / 2;
            float offsetY = (H_SIZE - (2 * imageSrcY + imageHeight)) / 2;

            float  pivotX       = 0.5f - offsetX / imageWidth;
            float  pivotY       = 0.5f - offsetY / imageHeight;
            string alignmentStr = "      alignment: 9";
            if (isCenterPivot == true)
            {
                alignmentStr = "      alignment: 0";
                pivotX       = 0.5f;
                pivotY       = 0.5f;
            }
            string ss = "      pivot: {x: " + pivotX.ToString() + ", y: " + pivotY.ToString() + "}";
            Debug.Log("imageName = " + imageName + " offsetx=" + offsetX.ToString() + "offsetY = " + offsetY.ToString());
            Debug.Log("imageName = " + imageName + " Width=" + imageWidth.ToString() + "Height = " + imageHeight.ToString() + "W_SIZE = " + W_SIZE.ToString() + "H_SIZE = " + H_SIZE.ToString());


            string borderInfoStr = GetBorderInfoStr(pngPathDict[imageName]);
            imageY = pngHeight - imageHeight - imageY;
            downContentList.Add(
                string.Join("\n", new string[] {
                "    - name: " + imageName,
                "      rect:",
                "        serializedVersion: 2",
                "        x: " + imageX,
                "        y: " + imageY,
                "        width: " + imageWidth,
                "        height: " + imageHeight,
                alignmentStr,
                ss,
                "      border: " + borderInfoStr,
            })
                );
        }

        string pngMetaTemplateFile = FileTools.getProjectPath("CommonTool/TexturePacker/PngMetaTemplate.txt");
        string metaTemplateContent = FileTools.readFile(pngMetaTemplateFile);

        FileTools.deleteFileOrFolder(assetMetaPath);
        var con2 = metaTemplateContent.Replace("#*0*#", guidStr).Replace("#*1*#", string.Join("\n", upContentList.ToArray())).Replace("#*2*#", string.Join("\n", downContentList.ToArray()));

#if UNITY_IOS
        con2 = con2.Replace("textureFormat: -1", "textureFormat: 5");
#else
#endif

        FileTools.writeFile(assetMetaPath, con2);
    }