public void AddPng(string pngPath) { SpriteForAtlasInfo sprInfo = new SpriteForAtlasInfo(); sprInfo.spriteName = FileTools.getBaseNameWithoutExt(pngPath); sprInfo.spriteGUID = FileTools.getGuidFromResFile(pngPath); sprInfoDict.Add(sprInfo.spriteName, sprInfo); }
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); }