forked from cgvr/DeltaVR
radio particle emission rate corresponds with mic input volume
This commit is contained in:
@@ -14,9 +14,14 @@ public class RadioTransmitter : XRGrabInteractable
|
||||
public FMODWhisperBridge fmodWhisperBridge;
|
||||
public ReleasableButton radioButton;
|
||||
public TextMeshProUGUI computerScreen;
|
||||
|
||||
[Header("Particle System Config")]
|
||||
public ParticleSystem particles;
|
||||
public float baseEmissionRate = 3;
|
||||
public float maxExtraEmissionRate = 50;
|
||||
|
||||
private bool isProcessing;
|
||||
private ParticleSystem.EmissionModule particleEmission;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
@@ -26,14 +31,20 @@ public class RadioTransmitter : XRGrabInteractable
|
||||
radioButton.Lock();
|
||||
isProcessing = false;
|
||||
|
||||
var emission = particles.emission;
|
||||
emission.enabled = false;
|
||||
particleEmission = particles.emission;
|
||||
particleEmission.enabled = false;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
particles.transform.LookAt(computerScreen.transform.position);
|
||||
if (particles.emission.enabled)
|
||||
{
|
||||
particles.transform.LookAt(computerScreen.transform.position);
|
||||
Debug.Log("speech volume normalized: " + fmodWhisperBridge.GetNormalizedVolume01());
|
||||
Debug.Log("speech volume decibels: " + fmodWhisperBridge.GetCurrentVolumeDb());
|
||||
particleEmission.rateOverTime = baseEmissionRate + fmodWhisperBridge.GetNormalizedVolume01() * maxExtraEmissionRate;
|
||||
}
|
||||
}
|
||||
|
||||
protected async override void OnSelectEntered(SelectEnterEventArgs args)
|
||||
@@ -55,8 +66,7 @@ public class RadioTransmitter : XRGrabInteractable
|
||||
fmodWhisperBridge.OnWhisperSegmentFinished += OnPlayerSpeechFinished;
|
||||
fmodWhisperBridge.ActivateRecording();
|
||||
|
||||
var emission = particles.emission;
|
||||
emission.enabled = true;
|
||||
particleEmission.enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +91,6 @@ public class RadioTransmitter : XRGrabInteractable
|
||||
fmodWhisperBridge.OnWhisperSegmentFinished -= OnPlayerSpeechFinished;
|
||||
fmodWhisperBridge.DeactivateRecording();
|
||||
|
||||
var emission = particles.emission;
|
||||
emission.enabled = false;
|
||||
particleEmission.enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user