diff --git a/Assets/SpriteSheetImporter/Editor/StarlingParser.cs b/Assets/SpriteSheetImporter/Editor/StarlingParser.cs index ed866c1..60c602f 100644 --- a/Assets/SpriteSheetImporter/Editor/StarlingParser.cs +++ b/Assets/SpriteSheetImporter/Editor/StarlingParser.cs @@ -7,6 +7,7 @@ using System.Reflection; using System.Globalization; using System.Linq; +using UnityEditor.U2D.Sprites; /// /// Starling parser @@ -34,11 +35,10 @@ public bool ParseAsset (Texture2D asset, TextAsset textAsset, Vector2 inputPivot doc.LoadXml(textAsset.text); XmlNodeList subTextures = doc.SelectNodes("//SubTexture"); - List spriteSheet = new List(); + List spriteSheet = new List(); //bool pivotSet = false; //not used anymore Vector2 pivotPixels; - foreach (XmlNode node in subTextures) { string name = GetAttribute(node, "name"); @@ -145,12 +145,12 @@ public bool ParseAsset (Texture2D asset, TextAsset textAsset, Vector2 inputPivot } // Make Sprite - SpriteMetaData smd = new SpriteMetaData(); + SpriteRect smd = new SpriteRect(); + smd.spriteID = GUID.Generate(); smd.name = name; smd.rect = new Rect(x, asset.height - y - height, width, height); smd.pivot = spritePivot; - smd.alignment = 9; // Custom Sprite alignment (not center) - + smd.alignment = SpriteAlignment.Custom; spriteSheet.Add(smd); } @@ -158,9 +158,14 @@ public bool ParseAsset (Texture2D asset, TextAsset textAsset, Vector2 inputPivot { string assetPath = AssetDatabase.GetAssetPath(asset); TextureImporter importer = TextureImporter.GetAtPath(assetPath) as TextureImporter; - importer.spritesheet = spriteSheet.ToArray(); importer.textureType = TextureImporterType.Sprite; importer.spriteImportMode = SpriteImportMode.Multiple; + var factory = new SpriteDataProviderFactories(); + factory.Init(); + var dataProvider = factory.GetSpriteEditorDataProviderFromObject(importer); + dataProvider.InitSpriteEditorDataProvider(); + dataProvider.SetSpriteRects(spriteSheet.ToArray()); + dataProvider.Apply(); var guid = AssetDatabase.AssetPathToGUID(assetPath); if (string.IsNullOrEmpty(guid)) @@ -184,7 +189,6 @@ public bool ParseAsset (Texture2D asset, TextAsset textAsset, Vector2 inputPivot } return false; } - private static float GetFloatAttribute(XmlNode node, string name, float defaultValue = 0) { XmlNode attribute = node.Attributes.GetNamedItem(name);