Beispiel #1
0
        public        Sprite[] GetSprites(Texture2D texture, Vector2 spriteSize, PiskelSpriteSettings spriteSettings)
        {
            Vector2 pivot;

            if (spriteSettings.pivot == PiskelSpriteSettings.PivotType.Custom)
            {
                pivot = spriteSettings.customPivotValue;
            }
            else
            {
                pivot = PivotTypeToValue(spriteSettings.pivot);
            }
            var size    = layout.Select(a => a.array.Length).Sum();
            var sprites = new Sprite[size];

            for (int a = 0; a < layout.Length; a++)
            {
                for (int b = 0; b < layout[a].array.Length; b++)
                {
                    var index = layout[a].array[b];
                    sprites[index] = Sprite.Create(texture, new Rect(
                                                       new Vector2(a * spriteSize.x, b * spriteSize.y),
                                                       spriteSize),
                                                   pivot,
                                                   spriteSettings.pixelsPerUnits);
                }
            }

            return(sprites);
        }
        public static GameObject CreateFromPiskelFile(string piskelJson, PiskelSpriteSettings spriteSettings)
        {
            var piskel = PiskelDocument.FromPiskelJson(piskelJson);
            var root   = new GameObject(piskel.name);

            for (int i = 0; i < piskel.layers.Length; i++)
            {
                var piskelLayer = piskel.layers[i];
                var layer       = new GameObject(piskelLayer.name);
                layer.transform.parent = root.transform;

                var player = layer.AddComponent <PiskelRuntimePlayer>();
                player.frameRate = piskel.fps;
                piskel.GenerateTexturesAndSpritesForLayer(i, out player.textures, out player.sprites, spriteSettings);
            }
            return(root);
        }
Beispiel #3
0
 public void GenerateTexturesAndSpritesForLayer(int layer, out Texture2D[] textures, out Sprite[] sprites, PiskelSpriteSettings spriteSettings)
 {
     layers[layer].GenerateTexturesAndSprites(new Vector2(width, height), out textures, out sprites, spriteSettings);
 }
Beispiel #4
0
        public void GenerateTexturesAndSprites(Vector2 spriteSize, out Texture2D[] textures, out Sprite[] sprites, PiskelSpriteSettings spriteSettings)
        {
            textures = new Texture2D[chunks.Length];
            sprites  = new Sprite[frameCount];
            int spriteId = 0;

            for (var i = 0; i < chunks.Length; i++)
            {
                var chunk = chunks[i];
                textures[i]      = chunk.GetTexture();
                textures[i].name = $"{name}_Tex{i}";
                foreach (var sprite in chunk.GetSprites(textures[i], spriteSize, spriteSettings))
                {
                    sprite.name         = $"{name}_{spriteId}";
                    sprites[spriteId++] = sprite;
                }
            }
        }