Beispiel #1
0
    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();
            }
        }
    }
Beispiel #2
0
    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);
    }