/// <summary>
    /// Return a vector of points that specifies the path created
    /// </summary>
    /// <returns>The tunnel points.</returns>
    private Vector2[] UpdateThenReturnNewTunnelPositions(float deltatime)
    {
        GameObject tunnel          = tunnelInBack;
        Tunnel     tunnelComponent = tunnel != null?tunnel.GetComponent <Tunnel>() : null;

        List <Vector2> leftSide  = new List <Vector2>();
        List <Vector2> rightSide = new List <Vector2>();

        // if tunnel is not null and if tunnel is still in view
        while (tunnel != null && !tunnelComponent.IsTunnelOutOfBounds())
        {
            tunnelComponent.UpdateTunnelPosition(deltatime);
            leftSide.Add(tunnelComponent.GetLeftSide());
            rightSide.Add(tunnelComponent.GetRightSide());

            tunnel          = tunnelComponent.GetTunnelInFront();
            tunnelComponent = tunnel != null?tunnel.GetComponent <Tunnel>() : null;
        }

        // create an array of vertices, we will these all together
        rightSide.Reverse();
        leftSide.AddRange(rightSide);

        return(leftSide.ToArray());
    }