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;
            }
        }