private static PlistMetaData ParseMetaData(PlistDictionary dMetaData) { PlistMetaData metaData = new PlistMetaData(); metaData.format = (int)dMetaData["format"]; metaData.realTextureFileName = dMetaData["realTextureFileName"] as string; metaData.size = PlistDictionary.ParseVector2(dMetaData["size"] as string); metaData.smartpdate = dMetaData["smartupdate"] as string; metaData.textureFileName = dMetaData["textureFileName"] as string; return(metaData); }
private static string LoadWithFrameDict(PlistDictionary dPlist) { //parse metaData var meta = dPlist["metadata"] as PlistDictionary; PlistMetaData metaData = ParseMetaData(meta); //parse frames List <FrameDataDict> frames = ParseFrames(dPlist["frames"] as PlistDictionary, metaData.format); string name = metaData.realTextureFileName.Substring(0, metaData.realTextureFileName.Length - 4); DirectoryInfo directory = new DirectoryInfo(BuildAnimation.PlistPath + "/png"); Debug.Log("name:" + name); string path = BuildAnimation.DataPathToAssetPath(directory.FullName + "/" + name + ".png"); //load png Texture2D bigTexture = AssetDatabase.LoadAssetAtPath <Texture2D>(path); if (bigTexture == null) { Debug.LogError("LoadTexture2D, failed!" + path); return(null); } List <SpriteMetaData> lstSprite = new List <SpriteMetaData>(); TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter; foreach (FrameDataDict frameDataDict in frames) { frameInfos[frameDataDict.name] = frameDataDict; SpriteMetaData spriteMetaData = SpriteFrame.CreateWithFrameDict(frameDataDict, bigTexture); lstSprite.Add(spriteMetaData); } textureImporter.textureType = TextureImporterType.Sprite; textureImporter.spriteImportMode = SpriteImportMode.Multiple; textureImporter.spritesheet = lstSprite.ToArray(); AssetDatabase.ImportAsset(path); return(path); }