// ================================================================================
        //  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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }