private static List <SpriteFrame> LoadWithFrameDict(PlistDictionary dPlist, string plist, string textureType) { // 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); string plistPath = Path.GetDirectoryName(plist); string parentPath = plistPath.Substring(0, plistPath.LastIndexOf('/')); //load png Texture2D bigTexture = (Texture2D)Resources.Load(parentPath + "/png/" + name); if (bigTexture == null) { return(null); } List <SpriteFrame> lstSpriteFrame = new List <SpriteFrame>(); foreach (FrameDataDict frameDataDict in frames) { SpriteFrame spriteFrame = SpriteFrame.CreateWithFrameDict(frameDataDict, bigTexture, textureType); lstSpriteFrame.Add(spriteFrame); } return(lstSpriteFrame); }
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.smartupdate = dMetaData["smartupdate"] as string; metaData.textureFileName = dMetaData["textureFileName"] as string; return(metaData); }