/// <summary> /// Called when a cube needs to spawn. /// The direction is randomized here. /// </summary> private void Spawn() { var pos = Vector3.forward * _zStart; var dir = (CubeDirection)Random.Range(0, 4); switch (dir) { case CubeDirection.Up: pos += Vector3.up * _distanceFromMiddle; break; case CubeDirection.Down: pos += Vector3.down * _distanceFromMiddle; break; case CubeDirection.Left: pos += Vector3.left * _distanceFromMiddle; break; case CubeDirection.Right: pos += Vector3.right * _distanceFromMiddle; break; } var cube = _objectManager.SpawnCube(pos, Quaternion.identity); cube.Direction = dir; _spawnedCubes++; }