Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions Assets/SpriteSheetImporter/Editor/StarlingParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
using System.Reflection;
using System.Globalization;
using System.Linq;
using UnityEditor.U2D.Sprites;

/// <summary>
/// Starling parser
Expand Down Expand Up @@ -34,11 +35,10 @@ public bool ParseAsset (Texture2D asset, TextAsset textAsset, Vector2 inputPivot
doc.LoadXml(textAsset.text);

XmlNodeList subTextures = doc.SelectNodes("//SubTexture");
List<SpriteMetaData> spriteSheet = new List<SpriteMetaData>();
List<SpriteRect> spriteSheet = new List<SpriteRect>();

//bool pivotSet = false; //not used anymore
Vector2 pivotPixels;

foreach (XmlNode node in subTextures)
{
string name = GetAttribute(node, "name");
Expand Down Expand Up @@ -145,22 +145,27 @@ 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);
}

if (spriteSheet.Count != 0)
{
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))
Expand All @@ -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);
Expand Down