Пример #1
0
        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);
        }
Пример #2
0
        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);
        }