diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/ShapeDetection/RadioTransmitter.cs b/Assets/_PROJECT/Scripts/ModeGeneration/ShapeDetection/RadioTransmitter.cs index 33cd389c..f7349420 100644 --- a/Assets/_PROJECT/Scripts/ModeGeneration/ShapeDetection/RadioTransmitter.cs +++ b/Assets/_PROJECT/Scripts/ModeGeneration/ShapeDetection/RadioTransmitter.cs @@ -20,7 +20,7 @@ public class RadioTransmitter : XRGrabInteractable public float baseEmissionRate = 3; public float maxExtraEmissionRate = 50; - private bool isProcessing; + private bool isRecording; private ParticleSystem.EmissionModule particleEmission; // Start is called before the first frame update @@ -29,7 +29,7 @@ public class RadioTransmitter : XRGrabInteractable radioButton.OnButtonPressed += OnRadioButtonPressed; radioButton.OnButtonReleased += OnRadioButtonReleased; radioButton.Lock(); - isProcessing = false; + isRecording = false; particleEmission = particles.emission; particleEmission.enabled = false; @@ -41,7 +41,13 @@ public class RadioTransmitter : XRGrabInteractable if (particleEmission.enabled) { particles.transform.LookAt(computerScreen.transform.position); - particleEmission.rateOverTime = baseEmissionRate + fmodWhisperBridge.GetNormalizedVolume01() * maxExtraEmissionRate; + if (isRecording) + { + particleEmission.rateOverTime = baseEmissionRate + fmodWhisperBridge.GetNormalizedVolume01() * maxExtraEmissionRate; + } else + { + particleEmission.rateOverTime = baseEmissionRate; + } } } @@ -63,21 +69,20 @@ public class RadioTransmitter : XRGrabInteractable private void OnRadioButtonPressed() { AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject); - if (!isProcessing) - { - isProcessing = true; - fmodWhisperBridge.OnWhisperSegmentUpdated += OnPlayerSpeechUpdated; - fmodWhisperBridge.OnWhisperSegmentFinished += OnPlayerSpeechFinished; - fmodWhisperBridge.ActivateRecording(); + fmodWhisperBridge.OnWhisperSegmentUpdated += OnPlayerSpeechUpdated; + fmodWhisperBridge.OnWhisperSegmentFinished += OnPlayerSpeechFinished; + fmodWhisperBridge.ActivateRecording(); - particleEmission.enabled = true; - } + isRecording = true; + particleEmission.enabled = true; } private void OnRadioButtonReleased() { fmodWhisperBridge.DeactivateRecording(); AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject); + + isRecording = false; } private void OnPlayerSpeechUpdated(string text) @@ -88,9 +93,7 @@ public class RadioTransmitter : XRGrabInteractable private void OnPlayerSpeechFinished(string playerText) { computerScreen.text = playerText; - isProcessing = false; OnPlayerFinishedSpeaking?.Invoke(); - fmodWhisperBridge.OnWhisperSegmentUpdated -= OnPlayerSpeechUpdated; fmodWhisperBridge.OnWhisperSegmentFinished -= OnPlayerSpeechFinished;