/// <summary>
        /// When the user clicks the pointer (select button) or air-taps on the object,
        /// change the filter setting and the material.
        /// </summary>
        public void OnPointerClicked(MixedRealityPointerEventData eventData)
        {
            // Only proceed if the effect script is attached.
            if (loFiEffect == null)
            {
                return;
            }

            // Get the current source quality setting.
            AudioLoFiSourceQuality sourceQuality = loFiEffect.SourceQuality;

            // Select a new source quality setting.
            switch (sourceQuality)
            {
            case AudioLoFiSourceQuality.NarrowBandTelephony:
                sourceQuality = AudioLoFiSourceQuality.AmRadio;
                break;

            case AudioLoFiSourceQuality.AmRadio:
                sourceQuality = AudioLoFiSourceQuality.FullRange;
                break;

            case AudioLoFiSourceQuality.FullRange:
                sourceQuality = AudioLoFiSourceQuality.NarrowBandTelephony;
                break;
            }

            // Update the material to match the new source quality.
            SetEmitterMaterial(sourceQuality);

            // Update the source quality.
            loFiEffect.SourceQuality = sourceQuality;
        }
Пример #2
0
    /// <summary>
    /// Changes the AudioLoFiEffect source quality on click.
    /// </summary>
    /// <param name="data">Not used by this implementation.</param>
    public void OnInputClicked(InputClickedEventData data)
    {
        // Make sure we found an AudioLoFiEffect script.
        if (loFiEffect == null)
        {
            return;
        }

        // Get the current source quality setting.
        AudioLoFiSourceQuality sourceQuality = loFiEffect.SourceQuality;

        // Increment the source quality.
        switch (sourceQuality)
        {
        case AudioLoFiSourceQuality.NarrowBandTelephony:
            sourceQuality = AudioLoFiSourceQuality.AmRadio;
            break;

        case AudioLoFiSourceQuality.AmRadio:
            sourceQuality = AudioLoFiSourceQuality.FullRange;
            break;

        case AudioLoFiSourceQuality.FullRange:
            sourceQuality = AudioLoFiSourceQuality.NarrowBandTelephony;
            break;
        }

        // Update the emitter material to match the new source quality.
        SetEmitterMaterial(sourceQuality);

        // Update the source quality.
        loFiEffect.SourceQuality = sourceQuality;
    }
Пример #3
0
        private void SetEmitterMaterial(AudioLoFiSourceQuality sourceQuality)
        {
            Material emitterMaterial = UnknownQuality;

            // Determine the material for the emitter based on the source quality.
            switch (sourceQuality)
            {
            case AudioLoFiSourceQuality.NarrowBandTelephony:
                emitterMaterial = NarrowBandTelephony;
                break;

            case AudioLoFiSourceQuality.AmRadio:
                emitterMaterial = AmRadio;
                break;

            case AudioLoFiSourceQuality.FullRange:
                emitterMaterial = FullRange;
                break;
            }

            // Set the material on the emitter.
            if (emitterRenderer != null)
            {
                emitterRenderer.sharedMaterial = emitterMaterial;
            }
        }