forked from cgvr/DeltaVR
fixed bug with radio not recording voice
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user