void SetTargetPosition() { // Get target position on navgrid and in world targetNavPosition = GetNextNavPosition(currentDirection); targetWorldPosition = cityNavigation.NavGridToWorldPosition(targetNavPosition); // Get the target position in scene targetScenePosition = cityNavigation.WorldToScenePosition(targetWorldPosition); distanceToTarget = 0; // Target point will be at ground level (roughly waist-level for mobile), so adjust up by half mobile height targetScenePosition.y += halfMobileHeight; // Mobile now owns target tile and can release current tile cityNavigation.ClearFlags(currentNavPosition, CityNavigation.TileFlags.Occupied); cityNavigation.SetFlags(targetNavPosition, CityNavigation.TileFlags.Occupied); // Change state to moving forwards ChangeState(MobileStates.MovingForward); seekCount = 0; }