Adds a traditional brake alongside the existing handbrake functionality. This change allows for more controlled deceleration using a standard braking system and introduces a brake power parameter in the vehicle controller for further adjustment. The input manager is updated to accommodate a new brake input, and the vehicle controller uses this input to apply a progressive braking force, particularly at lower speeds. Also corrects a typo in the braking logic.
48 lines
1.5 KiB
C#
48 lines
1.5 KiB
C#
using UnityEngine;
|
|
using UnityEngine.InputSystem;
|
|
|
|
namespace ArcadeVP
|
|
{
|
|
public class InputManager_ArcadeVP : MonoBehaviour
|
|
{
|
|
public ArcadeVehicleController arcadeVehicleController;
|
|
|
|
[HideInInspector] public float steering;
|
|
[HideInInspector] public float acceleration;
|
|
[HideInInspector] public float handbrake;
|
|
[HideInInspector] public float brake;
|
|
|
|
private PlayerInput _playerInput;
|
|
private InputAction _steerAction;
|
|
private InputAction _accelAction;
|
|
private InputAction _handbrakeAction;
|
|
private InputAction _brakeAction;
|
|
|
|
|
|
private void Awake()
|
|
{
|
|
_playerInput = GetComponent<PlayerInput>();
|
|
if (_playerInput == null)
|
|
{
|
|
Debug.LogError("PlayerInput component not found on the GameObject.");
|
|
return;
|
|
}
|
|
|
|
_steerAction = _playerInput.actions["Steer"];
|
|
_accelAction = _playerInput.actions["Accelerate"];
|
|
_handbrakeAction = _playerInput.actions["HandBrake"];
|
|
_brakeAction = _playerInput.actions["Brake"];
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
steering = _steerAction?.ReadValue<float>() ?? 0f;
|
|
acceleration = _accelAction?.ReadValue<float>() ?? 0f;
|
|
handbrake = _handbrakeAction?.ReadValue<float>() ?? 0f;
|
|
brake = _brakeAction?.ReadValue<float>() ?? 0f;
|
|
|
|
arcadeVehicleController.ProvideInputs(steering, acceleration, handbrake, brake);
|
|
}
|
|
}
|
|
}
|