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; }