예제 #1
0
    public Vector2 GetPositionInRoute(Location startLocation)
    {
        CheckIfNeedToBeReversed(startLocation);

        Vector2 position = Vector2.zero;

        float distance     = 0;
        float distanceDone = WorldMapController.calculateRouteDistanceKM(this) - GetDistanceLeft();

        for (int i = 1; i < GetListRoute().Count; i++)
        {
            Vector2 prev         = GetListRoute()[i - 1];
            Vector2 cur          = GetListRoute()[i];
            float   prevdistance = distance;
            distance += WorldMapController.calculateDistanceLatLongKM(prev, cur);

            if (distance > distanceDone)
            {
                float tempdist     = distance - prevdistance;
                float tempdistDone = distanceDone - prevdistance;
                float tempPosition = tempdistDone / tempdist;
                position = Vector2.Lerp(prev, cur, tempPosition);
                break;
            }
        }


        return(position);
    }
예제 #2
0
    public void OnChooseRouteButtonClick()
    {
        if (_selectedRoute != null)
        {
            float distance = WorldMapController.calculateRouteDistanceKM(_selectedRoute);
            _selectedRoute.SetDistanceLeft(distance);

            TimeSpan timeSpan = _selectedRoute.GetTimeLeft(MainGameController.instance.player.GetActiveBoat().GetOfflineSpeed());

            _routeSelectedConfirmPanel.SetData(_selectedRoute.GetFromLocation().Name, _selectedRoute.GetToLocation().Name, distance, timeSpan);
            _routeSelectedConfirmPanel.gameObject.SetActive(true);
        }
    }