public void SpawnObstacle(ObstacleEnum pos)
 {
     if (pos == ObstacleEnum.FAR_LEFT && farLeftObstacle == null)
     {
         farLeftObstacle = Instantiate(obstaclePrefab, transform);
         farLeftObstacle.transform.localPosition += new Vector3(-(obsOffset * 2), 0, 0);
         farLeftObstacle.transform.Rotate(0, 90, 0);
     }
     else if (pos == ObstacleEnum.LEFT && leftObstacle == null)
     {
         leftObstacle = Instantiate(obstaclePrefab, transform);
         leftObstacle.transform.localPosition += new Vector3(-obsOffset, 0, 0);
         leftObstacle.transform.Rotate(0, 90, 0);
     }
     else if (pos == ObstacleEnum.MIDDLE && middleObstacle == null)
     {
         middleObstacle = Instantiate(obstaclePrefab, transform);
         middleObstacle.transform.Rotate(0, 90, 0);
     }
     else if (pos == ObstacleEnum.RIGHT && rightObstacle == null)
     {
         rightObstacle = Instantiate(obstaclePrefab, transform);
         rightObstacle.transform.localPosition += new Vector3(obsOffset, 0, 0);
         rightObstacle.transform.Rotate(0, 90, 0);
     }
     else if (pos == ObstacleEnum.FAR_RIGHT && farRightObstacle == null)
     {
         farRightObstacle = Instantiate(obstaclePrefab, transform);
         farRightObstacle.transform.localPosition += new Vector3(obsOffset * 2, 0, 0);
         farRightObstacle.transform.Rotate(0, 90, 0);
     }
 }
    void DetermineObstacle()
    {
        if (obstacleActive) return;

        obstacleTimer += GameTimer.Game_deltaTime;
        
        if (obstacleTimer >= GameInfo.ObstacleTime)
        {
            if (StartObstacleEvent != null)
            {
                obstacleActive = true;
                obstacleTimer = 0;

                int randomObstacle = Random.Range(0, ObstacleLength);
                CurrentObstacle = (ObstacleEnum)randomObstacle;

                StartObstacleEvent();
            }
        }
    }