static void UpdateTextureImporter(JSONNode sheetDef, TextureImporter textureImporter, string path, string dirname) { Debug.Log(path + " " + dirname + " " + sheetDef.ToString()); var size = GetImageSize(textureImporter); textureImporter.textureType = TextureImporterType.Default; textureImporter.normalmap = false; textureImporter.lightmap = false; textureImporter.maxTextureSize = 2048; textureImporter.generateCubemap = TextureImporterGenerateCubemap.None; textureImporter.npotScale = TextureImporterNPOTScale.None; textureImporter.isReadable = true; textureImporter.mipmapEnabled = false; // textureImporter.ClearPlatformTextureSettings ("Web"); // textureImporter.ClearPlatformTextureSettings ("Standalone"); // textureImporter.ClearPlatformTextureSettings ("iPhone"); // textureImporter.ClearPlatformTextureSettings ("Android"); var oldSpriteMetaDatas = textureImporter.spritesheet; var spriteMetaDatas = new List <SpriteMetaData> (); foreach (var key in sheetDef.Keys) { var spriteDef = sheetDef [key]; var src = string.Format("{0}/{1}", dirname, spriteDef ["src"].Value); if (path == src) { var name = BaseUtils.GetFilenameWithoutExtension(key); SpriteMetaData oldSpriteMetaData = default(SpriteMetaData); bool hasOld = false; if (oldSpriteMetaDatas != null) { oldSpriteMetaData = oldSpriteMetaDatas.FirstOrDefault((e) => e.name == name); hasOld = true; } var spriteMetaData = new SpriteMetaData(); spriteMetaData.name = name; spriteMetaData.alignment = hasOld ? oldSpriteMetaData.alignment : (int)SpriteAlignment.Center; spriteMetaData.border = hasOld ? oldSpriteMetaData.border : Vector4.zero; spriteMetaData.pivot = hasOld ? oldSpriteMetaData.pivot : new Vector2(0.5f, 0.5f); spriteMetaData.rect = CalcUV(spriteDef ["uv"], size.x, size.y); spriteMetaDatas.Add(spriteMetaData); } } if (spriteMetaDatas.Count > 0) { textureImporter.spriteImportMode = SpriteImportMode.Multiple; textureImporter.spritesheet = spriteMetaDatas.ToArray(); } else { textureImporter.spriteImportMode = SpriteImportMode.Single; } }