// ================================================================================ // Sprite Data // -------------------------------------------------------------------------------- public SpriteMetaData[] GetSpriteSheet(SpriteAlignment spriteAlignment, float customX, float customY) { SpriteMetaData[] metaData = new SpriteMetaData[frames.Count]; for (int i = 0; i < frames.Count; i++) { ImportedAnimationFrame spriteInfo = frames[i]; SpriteMetaData spriteMetaData = new SpriteMetaData(); // sprite alignment spriteMetaData.alignment = (int)spriteAlignment; if (spriteAlignment == SpriteAlignment.Custom) { spriteMetaData.pivot.x = customX; spriteMetaData.pivot.y = customY; } spriteMetaData.name = spriteInfo.name; spriteMetaData.rect = new Rect(spriteInfo.x, spriteInfo.y, spriteInfo.width, spriteInfo.height); metaData[i] = spriteMetaData; } return(metaData); }
private static bool GetFramesFromJSON(ImportedAnimationSheet animationSheet, JSONObject root) { var list = root["frames"].Array; if (list == null) { Debug.LogWarning("No 'frames' array found in JSON created by Aseprite."); IssueVersionWarning(); return(false); } foreach (var item in list) { ImportedAnimationFrame frame = new ImportedAnimationFrame(); frame.name = Path.GetFileNameWithoutExtension(item.Obj["filename"].Str); var frameValues = item.Obj["frame"].Obj; frame.width = (int)frameValues["w"].Number; frame.height = (int)frameValues["h"].Number; frame.x = (int)frameValues["x"].Number; frame.y = animationSheet.height - (int)frameValues["y"].Number - frame.height; // unity has a different coord system frame.duration = (int)item.Obj["duration"].Number; animationSheet.frames.Add(frame); } return(true); }
public SpriteMetaData[] GetSpriteSheet(SpriteAlignment spriteAlignment, Vector2 custom) { SpriteMetaData[] metaData = new SpriteMetaData[frames.Count]; for (int i = 0; i < frames.Count; i++) { ImportedAnimationFrame spriteInfo = frames[i]; SpriteMetaData spriteMetaData = new SpriteMetaData(); // sprite alignment if (spriteInfo.trimmed) { var pivotBeforeTrim = GetPivotValue(spriteAlignment, custom); var originAfterTrim = spriteInfo.spriteSourceRect.position / spriteInfo.sourceSize; var ratio = new Vector2(spriteInfo.sourceSize.x / spriteInfo.rect.size.x, spriteInfo.sourceSize.y / spriteInfo.rect.size.y); spriteMetaData.alignment = (int)SpriteAlignment.Custom; spriteMetaData.pivot = ratio * (pivotBeforeTrim - originAfterTrim); } else { spriteMetaData.alignment = (int)spriteAlignment; if (spriteAlignment == SpriteAlignment.Custom) { spriteMetaData.pivot.x = custom.x; spriteMetaData.pivot.y = custom.y; } } spriteMetaData.name = spriteInfo.name; spriteMetaData.rect = new Rect(spriteInfo.rect.position, spriteInfo.rect.size); metaData[i] = spriteMetaData; } return(metaData); }
// ================================================================================ // Sprite Data // -------------------------------------------------------------------------------- public SpriteMetaData[] GetSpriteSheet(SpriteAlignment spriteAlignment, Vector2 pivotPoint) { SpriteMetaData[] metaData = new SpriteMetaData[Frames.Count]; for (int i = 0; i < Frames.Count; i++) { ImportedAnimationFrame spriteInfo = Frames[i]; SpriteMetaData spriteMetaData = new SpriteMetaData(); // Sprite alignment spriteMetaData.alignment = (int)spriteAlignment; if (spriteAlignment == SpriteAlignment.Custom) { spriteMetaData.pivot = pivotPoint; } spriteMetaData.name = spriteInfo.Name; spriteMetaData.rect = new Rect(spriteInfo.X, spriteInfo.Y, spriteInfo.Width, spriteInfo.Height); metaData[i] = spriteMetaData; } return(metaData); }