private void FindVehicleInVicinity()
 {
     if (!InVehicle)
     {
         RaycastHit[] raycastHits = Physics.BoxCastAll(characterInstance.mainShells.transform.position + Vector3.up, new Vector3(2.5f, 1f, 2.5f), Vector3.up, Quaternion.identity, 1f, LayerMask.GetMask("Vehicle"));
         if (raycastHits.Length > 0)
         {
             var valuedVehicle = raycastHits[0].transform.GetComponent <ValuedObject>();
             if (valuedVehicle != null)
             {
                 vehicleInVicinity = valuedVehicle;
             }
         }
         else
         {
             vehicleInVicinity = null;
         }
     }
 }
    public void SetVehicle(ValuedObject vehicle)
    {
        if (vehicle != null)
        {
            var inputBridge = vehicle.gameObject.AddComponent <PlayerInputBridge>();
            inputBridge.playerId         = playerId;
            inputBridge.controlledObject = vehicle.gameObject;
        }
        else
        {
            var inputBridge = currentVehicle.gameObject.GetComponent <PlayerInputBridge>();
            if (inputBridge != null)
            {
                GameObject.Destroy(inputBridge);
            }
        }

        HideCharacter(vehicle == null);
        FollowTransform(vehicle != null ? vehicle.transform : characterInstance.mainShells.transform);

        currentVehicle = vehicle;
    }