public LinkedList <ITimePoint> TimePoints; //storage where we save user move


    private void Start()
    {
        _timeController              = FindObjectOfType <TimeController>();
        _ordinaryPlayerController    = GetComponent <OrdinaryPlayerController>();
        _bezierCurvePlayerController = GetComponent <BezierCurvePlayerController>();
        _stairController             = GetComponent <StairController>();
        TimePoints = new LinkedList <ITimePoint>();

        _moveObjectController = GetComponent <MoveObjectController>();
    }
    private void SetupCurveController(BezierCurvePlayerController controller)
    {
        controller.CurvePoints = _curvePoints;

        if (StartFromEndOfCurve)
        {
            controller.directionCurve    = false;
            controller.CurrentWayPointId = _curvePoints.Count - 1;
        }
        else
        {
            controller.directionCurve    = true;
            controller.CurrentWayPointId = 0;
        }
    }