public void Update(IHost host, float timeRemaining, float poseTime) { if (poseTime == 0) { AudioMixerSnapshot[] mixerState = losing; if (host.Aligned()) { host.Pulse(); host.AddScore(1); mixerState = winning; } audio.outputAudioMixerGroup.audioMixer.TransitionToSnapshots(mixerState, new float[] { 1f }, 0.2f); stepIndex++; if (stepIndex >= routine.Steps.Count) { host.StopGame(); return; } step = routine.Steps[stepIndex]; if (timeRemaining > 0 && PoseTimeRemaining() > 0) { UpdatePose(host); } else { host.StopGame(); } } }
public void Begin(IHost host) { routine = HoleConfiguration.INSTANCE.PoseRoutine; step = routine.Steps[stepIndex]; audio = host.GetAudioSource(); AudioMixer mixer = audio.outputAudioMixerGroup.audioMixer; winning = new AudioMixerSnapshot[] { mixer.FindSnapshot("Unfiltered") }; losing = new AudioMixerSnapshot[] { mixer.FindSnapshot("Filtered") }; audio.clip = routine.Music; audio.Play(); host.SetTimeRemaining(routine.Music.length); UpdatePose(host); }