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 baseEmissionRate = 3;
|
||||||
public float maxExtraEmissionRate = 50;
|
public float maxExtraEmissionRate = 50;
|
||||||
|
|
||||||
private bool isProcessing;
|
private bool isRecording;
|
||||||
private ParticleSystem.EmissionModule particleEmission;
|
private ParticleSystem.EmissionModule particleEmission;
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
@@ -29,7 +29,7 @@ public class RadioTransmitter : XRGrabInteractable
|
|||||||
radioButton.OnButtonPressed += OnRadioButtonPressed;
|
radioButton.OnButtonPressed += OnRadioButtonPressed;
|
||||||
radioButton.OnButtonReleased += OnRadioButtonReleased;
|
radioButton.OnButtonReleased += OnRadioButtonReleased;
|
||||||
radioButton.Lock();
|
radioButton.Lock();
|
||||||
isProcessing = false;
|
isRecording = false;
|
||||||
|
|
||||||
particleEmission = particles.emission;
|
particleEmission = particles.emission;
|
||||||
particleEmission.enabled = false;
|
particleEmission.enabled = false;
|
||||||
@@ -41,7 +41,13 @@ public class RadioTransmitter : XRGrabInteractable
|
|||||||
if (particleEmission.enabled)
|
if (particleEmission.enabled)
|
||||||
{
|
{
|
||||||
particles.transform.LookAt(computerScreen.transform.position);
|
particles.transform.LookAt(computerScreen.transform.position);
|
||||||
|
if (isRecording)
|
||||||
|
{
|
||||||
particleEmission.rateOverTime = baseEmissionRate + fmodWhisperBridge.GetNormalizedVolume01() * maxExtraEmissionRate;
|
particleEmission.rateOverTime = baseEmissionRate + fmodWhisperBridge.GetNormalizedVolume01() * maxExtraEmissionRate;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
particleEmission.rateOverTime = baseEmissionRate;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,21 +69,20 @@ public class RadioTransmitter : XRGrabInteractable
|
|||||||
private void OnRadioButtonPressed()
|
private void OnRadioButtonPressed()
|
||||||
{
|
{
|
||||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
|
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
|
||||||
if (!isProcessing)
|
|
||||||
{
|
|
||||||
isProcessing = true;
|
|
||||||
fmodWhisperBridge.OnWhisperSegmentUpdated += OnPlayerSpeechUpdated;
|
fmodWhisperBridge.OnWhisperSegmentUpdated += OnPlayerSpeechUpdated;
|
||||||
fmodWhisperBridge.OnWhisperSegmentFinished += OnPlayerSpeechFinished;
|
fmodWhisperBridge.OnWhisperSegmentFinished += OnPlayerSpeechFinished;
|
||||||
fmodWhisperBridge.ActivateRecording();
|
fmodWhisperBridge.ActivateRecording();
|
||||||
|
|
||||||
|
isRecording = true;
|
||||||
particleEmission.enabled = true;
|
particleEmission.enabled = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private void OnRadioButtonReleased()
|
private void OnRadioButtonReleased()
|
||||||
{
|
{
|
||||||
fmodWhisperBridge.DeactivateRecording();
|
fmodWhisperBridge.DeactivateRecording();
|
||||||
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
|
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject);
|
||||||
|
|
||||||
|
isRecording = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnPlayerSpeechUpdated(string text)
|
private void OnPlayerSpeechUpdated(string text)
|
||||||
@@ -88,9 +93,7 @@ public class RadioTransmitter : XRGrabInteractable
|
|||||||
private void OnPlayerSpeechFinished(string playerText)
|
private void OnPlayerSpeechFinished(string playerText)
|
||||||
{
|
{
|
||||||
computerScreen.text = playerText;
|
computerScreen.text = playerText;
|
||||||
isProcessing = false;
|
|
||||||
OnPlayerFinishedSpeaking?.Invoke();
|
OnPlayerFinishedSpeaking?.Invoke();
|
||||||
|
|
||||||
fmodWhisperBridge.OnWhisperSegmentUpdated -= OnPlayerSpeechUpdated;
|
fmodWhisperBridge.OnWhisperSegmentUpdated -= OnPlayerSpeechUpdated;
|
||||||
fmodWhisperBridge.OnWhisperSegmentFinished -= OnPlayerSpeechFinished;
|
fmodWhisperBridge.OnWhisperSegmentFinished -= OnPlayerSpeechFinished;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user