void Update()
    {
        float distance = 60.0f;

        spawnTimer -= Time.deltaTime;
        if (spawnTimer <= 0)
        {
            spawnTimer = spawnTime;
            for (int i = 0; i < groupCount; i++)
            {
                float   someDegree = i * 360.0f / groupCount;
                Vector3 p          = new Vector3(Mathf.Cos(someDegree * Mathf.Deg2Rad) * distance, 0.5f, Mathf.Sin(someDegree * Mathf.Deg2Rad) * distance);
                currentSpawn.Spawn(p, Quaternion.Euler(0, -someDegree + 90, 0));
            }
            someOtherShittyCounter++;
            if (someOtherShittyCounter >= 4)
            {
                someOtherShittyCounter = 0;
                groupCount++;
                Enemy.speedMultiplier += 0.5f;
            }

            spawnIndex++;
            if (spawnIndex >= spawners.Length)
            {
                spawnIndex = 0;
            }
            currentSpawn = spawners[spawnIndex];
        }
    }
    void Awake()
    {
        spawners[0]  = new TriangleSpawn(prefab, 8);
        spawners[1]  = new DiamondSpawn(prefab, 8);
        spawners [2] = new TriangleSpawn(prefab, 8);

        currentSpawn = spawners [spawnIndex];
    }