public SimpleItem[] SpawnPrefabs(SimpleItem prefab, int amount, SpawnShape shape)
        {
            switch (shape)
            {
            case SpawnShape.Line:
                _items = SpawnLine(prefab, amount);
                break;

            case SpawnShape.Circle:
                _items = SpawnCircle(prefab, amount);
                break;
            }

            return(_items);
        }
        private SimpleItem[] SpawnLine(SimpleItem prefab, int amount)
        {
            var cubes = new List <SimpleItem>();

            for (var i = 0; i < amount; i++)
            {
                var cube = Instantiate(prefab, transform);
                // cube.name = "Cube " + i;
                var position = transform.position;
                position.x += i + (i * _offset);
                cube.transform.SetPositionAndRotation(position, Quaternion.identity);
                cubes.Add(cube);
            }

            return(cubes.ToArray());
        }
        private SimpleItem[] SpawnCircle(SimpleItem prefab, int amount)
        {
            var cubes           = new List <SimpleItem>();
            var offset          = (float)360 / amount;
            var radius          = amount / (Mathf.PI * 2);
            var parentTransform = transform;

            for (var i = 0; i < amount; i++)
            {
                var item = Instantiate(prefab, transform);
                // cube.name = "Cube " + i;
                parentTransform.localRotation = Quaternion.Euler(0, 1 - offset * i, 0);
                var position      = parentTransform.forward * radius;
                var itemTransform = item.transform;
                itemTransform.position      = parentTransform.TransformPoint(position);
                itemTransform.localRotation = parentTransform.rotation;
                cubes.Add(item);
            }
            return(cubes.ToArray());
        }