private void HandleDeAccelerate(InputAction.CallbackContext obj) { activeStatus |= AccelerationStatus.DeAccelPressed; if (activeStatus.IsDeAccelerationPressedFirst() && !sendStatus.IsDeAccelerationPressed()) { sendStatus = AccelerationStatus.DeAccelPressed; wheelController.DeAccelerate(); } }
private void HandleAccelerateRelease(InputAction.CallbackContext obj) { if (activeStatus.IsAccelerationPressedFirst()) { activeStatus ^= AccelerationStatus.AccelPressedFirst; } activeStatus ^= AccelerationStatus.AccelPressed; if (activeStatus.IsDeAccelerationPressedFirst() && !sendStatus.IsDeAccelerationPressed()) { sendStatus = AccelerationStatus.DeAccelPressed; wheelController.DeAccelerate(); } else if (activeStatus == AccelerationStatus.NoMoving && sendStatus != AccelerationStatus.NoMoving) { sendStatus = AccelerationStatus.NoMoving; wheelController.StopMoving(); } }
//Speed UP public void SpeedUp() { currentAS = AccelerationStatus.SpeedUp; }
//Maintain current speed public void SpeedMaitain() { currentAS = AccelerationStatus.Maintain; }
//Speed down public void SpeedDown() { currentAS = AccelerationStatus.SpeedDown; }
//Maintain current speed public void SpeedMaitain() { currentAS = AccelerationStatus.Maintain; }
//Speed down public void SpeedDown() { currentAS = AccelerationStatus.SpeedDown; }
//Speed UP public void SpeedUp() { currentAS = AccelerationStatus.SpeedUp; }
public static bool IsDeAccelerationPressedFirst(this AccelerationStatus status) { return(status.IsDeAccelerationPressed() && (status & AccelerationStatus.AccelPressedFirst) == 0); }
public static bool IsDeAccelerationPressed(this AccelerationStatus status) { return((status & AccelerationStatus.DeAccelPressed) != 0); }