Beispiel #1
0
        void InitializeValue(AudioOption.Types type)
        {
            if (dynamicValue.IsArray || (dynamicValue.Type == DynamicValue.ValueTypes.Null && dynamicValue.Value == null))
            {
                dynamicValue.Value = AudioOption.GetDefaultValue(type);
            }

            if (type == AudioOption.Types.VolumeScale || type == AudioOption.Types.PitchScale)
            {
                var data = audioOption.GetValue <Vector3>();

                valueProperty.SetValue(data.x);
                timeProperty.SetValue(data.y);
                easeProperty.SetValue((TweenUtility.Ease)data.z);
            }
            else if (type == AudioOption.Types.FadeIn || type == AudioOption.Types.FadeOut)
            {
                var data = audioOption.GetValue <Vector2>();

                valueProperty.SetValue(data.x);
                easeProperty.SetValue((TweenUtility.Ease)data.y);
            }
            else
            {
                valueProperty.SetValue(dynamicValue.Value);
            }
        }
Beispiel #2
0
        protected override void ApplyOptionNow(AudioOption option, bool recycle)
        {
            if (state != AudioStates.Stopped)
            {
                switch (option.Type)
                {
                case AudioOption.Types.VolumeScale:
                    float[] volumeData = option.GetValue <float[]>();
                    SetVolumeScale(volumeData[0], volumeData[1], (TweenUtility.Ease)volumeData[2], true);
                    break;

                case AudioOption.Types.PitchScale:
                    float[] pitchData = option.GetValue <float[]>();
                    SetPitchScale(pitchData[0], pitchData[1], (TweenUtility.Ease)pitchData[2], true);
                    break;

                case AudioOption.Types.RandomVolume:
                    float randomVolume = option.GetValue <float>();
                    Settings.RandomVolume         = randomVolume;
                    volumeModifier.RandomModifier = 1f + UnityEngine.Random.Range(-randomVolume, randomVolume);
                    break;

                case AudioOption.Types.RandomPitch:
                    float randomPitch = option.GetValue <float>();
                    Settings.RandomPitch         = randomPitch;
                    pitchModifier.RandomModifier = 1f + UnityEngine.Random.Range(-randomPitch, randomPitch);
                    break;

                case AudioOption.Types.FadeIn:
                    float[] fadeInData = option.GetValue <float[]>();
                    Settings.FadeIn     = fadeInData[0];
                    Settings.FadeInEase = (TweenUtility.Ease)fadeInData[1];
                    break;

                case AudioOption.Types.FadeOut:
                    float[] fadeOutData = option.GetValue <float[]>();
                    Settings.FadeIn     = fadeOutData[0];
                    Settings.FadeInEase = (TweenUtility.Ease)fadeOutData[1];
                    break;

                case AudioOption.Types.Loop:
                    Settings.Loop = option.GetValue <bool>();
                    break;

                default:
                    for (int i = 0; i < sources.Count; i++)
                    {
                        sources[i].ApplyOption(option, false);
                    }
                    break;
                }
            }

            if (recycle)
            {
                TypePoolManager.Recycle(ref option);
            }
        }
Beispiel #3
0
        protected override void ApplyOptionNow(AudioOption option, bool recycle)
        {
            if (state != AudioStates.Stopped)
            {
                switch (option.Type)
                {
                case AudioOption.Types.VolumeScale:
                    var volumeData = option.GetValue <Vector3>();
                    SetVolumeScale(volumeData.x, volumeData.y, (TweenUtility.Ease)volumeData.z, true);
                    break;

                case AudioOption.Types.PitchScale:
                    var pitchData = option.GetValue <Vector3>();
                    SetPitchScale(pitchData.x, pitchData.y, (TweenUtility.Ease)pitchData.z, true);
                    break;

                case AudioOption.Types.RandomVolume:
                    float randomVolume = option.GetValue <float>();
                    settings.RandomVolume         = randomVolume;
                    volumeModifier.RandomModifier = 1f + UnityEngine.Random.Range(-randomVolume, randomVolume);
                    break;

                case AudioOption.Types.RandomPitch:
                    float randomPitch = option.GetValue <float>();
                    settings.RandomPitch         = randomPitch;
                    pitchModifier.RandomModifier = 1f + UnityEngine.Random.Range(-randomPitch, randomPitch);
                    break;

                case AudioOption.Types.FadeIn:
                    var fadeInData = option.GetValue <Vector2>();
                    settings.FadeIn     = fadeInData.x;
                    settings.FadeInEase = (TweenUtility.Ease)fadeInData.y;
                    break;

                case AudioOption.Types.FadeOut:
                    var fadeOutData = option.GetValue <Vector2>();
                    settings.FadeIn     = fadeOutData.x;
                    settings.FadeInEase = (TweenUtility.Ease)fadeOutData.y;
                    break;

                case AudioOption.Types.Loop:
                    bool loop = option.GetValue <bool>();
                    settings.Loop = loop;
                    source.loop   = loop && !hasBreak;
                    break;

                case AudioOption.Types.Clip:
                    var clip = option.GetValue <AudioClip>();
                    settings.Clip = clip;
                    source.clip   = clip;
                    break;

                case AudioOption.Types.Output:
                    var output = option.GetValue <AudioMixerGroup>();
                    settings.Output = output;
                    source.outputAudioMixerGroup = output;
                    break;

                case AudioOption.Types.DopplerLevel:
                    source.dopplerLevel = option.GetValue <float>();
                    break;

                case AudioOption.Types.RolloffMode:
                    if (option.HasCurve())
                    {
                        source.rolloffMode = AudioRolloffMode.Custom;
                        source.SetCustomCurve(AudioSourceCurveType.CustomRolloff, option.GetValue <AnimationCurve>());
                    }
                    else
                    {
                        source.rolloffMode = option.GetValue <AudioRolloffMode>();
                    }
                    break;

                case AudioOption.Types.MinDistance:
                    source.minDistance = option.GetValue <float>();
                    break;

                case AudioOption.Types.MaxDistance:
                    source.maxDistance = option.GetValue <float>();
                    break;

                case AudioOption.Types.Spread:
                    if (option.HasCurve())
                    {
                        source.SetCustomCurve(AudioSourceCurveType.Spread, option.GetValue <AnimationCurve>());
                    }
                    else
                    {
                        source.spread = option.GetValue <float>();
                    }
                    break;

                case AudioOption.Types.Mute:
                    source.mute = option.GetValue <bool>();
                    break;

                case AudioOption.Types.BypassEffects:
                    source.bypassEffects = option.GetValue <bool>();
                    break;

                case AudioOption.Types.BypassListenerEffects:
                    source.bypassListenerEffects = option.GetValue <bool>();
                    break;

                case AudioOption.Types.BypassReverbZones:
                    source.bypassReverbZones = option.GetValue <bool>();
                    break;

                case AudioOption.Types.Priority:
                    source.priority = option.GetValue <int>();
                    break;

                case AudioOption.Types.StereoPan:
                    source.panStereo = option.GetValue <float>();
                    break;

                case AudioOption.Types.SpatialBlend:
                    if (option.HasCurve())
                    {
                        source.SetCustomCurve(AudioSourceCurveType.SpatialBlend, option.GetValue <AnimationCurve>());
                    }
                    else
                    {
                        source.spatialBlend = option.GetValue <float>();
                    }
                    break;

                case AudioOption.Types.ReverbZoneMix:
                    if (option.HasCurve())
                    {
                        source.SetCustomCurve(AudioSourceCurveType.ReverbZoneMix, option.GetValue <AnimationCurve>());
                    }
                    else
                    {
                        source.reverbZoneMix = option.GetValue <float>();
                    }
                    break;

                case AudioOption.Types.PlayRange:
                    var playRangeData = option.GetValue <Vector2>();
                    settings.PlayRangeStart = playRangeData.x;
                    settings.PlayRangeEnd   = playRangeData.y;
                    lastTime = source.time;
                    break;

                case AudioOption.Types.Time:
                    source.time = option.GetValue <float>();
                    lastTime    = source.time;
                    break;

                case AudioOption.Types.TimeSamples:
                    source.timeSamples = option.GetValue <int>();
                    lastTime           = source.time;
                    break;

                case AudioOption.Types.VelocityUpdateMode:
                    source.velocityUpdateMode = option.GetValue <AudioVelocityUpdateMode>();
                    break;

                case AudioOption.Types.IgnoreListenerPause:
                    source.ignoreListenerPause = option.GetValue <bool>();
                    break;

                case AudioOption.Types.IgnoreListenerVolume:
                    source.ignoreListenerVolume = option.GetValue <bool>();
                    break;

                case AudioOption.Types.Spatialize:
                    source.spatialize = option.GetValue <bool>();
                    break;
                }
            }

            if (recycle)
            {
                TypePoolManager.Recycle(ref option);
            }
        }
        protected override void ApplyOptionNow(AudioOption option, bool recycle)
        {
            if (state != AudioStates.Stopped)
            {
                switch (option.Type)
                {
                    case AudioOption.Types.VolumeScale:
                        float[] volumeData = option.GetValue<float[]>();
                        SetVolumeScale(volumeData[0], volumeData[1], (TweenUtility.Ease)volumeData[2], true);
                        break;
                    case AudioOption.Types.PitchScale:
                        float[] pitchData = option.GetValue<float[]>();
                        SetPitchScale(pitchData[0], pitchData[1], (TweenUtility.Ease)pitchData[2], true);
                        break;
                    case AudioOption.Types.RandomVolume:
                        float randomVolume = option.GetValue<float>();
                        Settings.RandomVolume = randomVolume;
                        volumeModifier.RandomModifier = 1f + UnityEngine.Random.Range(-randomVolume, randomVolume);
                        break;
                    case AudioOption.Types.RandomPitch:
                        float randomPitch = option.GetValue<float>();
                        Settings.RandomPitch = randomPitch;
                        pitchModifier.RandomModifier = 1f + UnityEngine.Random.Range(-randomPitch, randomPitch);
                        break;
                    case AudioOption.Types.FadeIn:
                        float[] fadeInData = option.GetValue<float[]>();
                        Settings.FadeIn = fadeInData[0];
                        Settings.FadeInEase = (TweenUtility.Ease)fadeInData[1];
                        break;
                    case AudioOption.Types.FadeOut:
                        float[] fadeOutData = option.GetValue<float[]>();
                        Settings.FadeIn = fadeOutData[0];
                        Settings.FadeInEase = (TweenUtility.Ease)fadeOutData[1];
                        break;
                    case AudioOption.Types.Loop:
                        Settings.Loop = option.GetValue<bool>();
                        break;
                    default:
                        for (int i = 0; i < sources.Count; i++)
                            sources[i].ApplyOption(option, false);
                        break;
                }
            }

            if (recycle)
                TypePoolManager.Recycle(ref option);
        }
Beispiel #5
0
        public void ApplyAudioOption(AudioOption option, AudioSource audioSource)
        {
            switch (option.type)
            {
            case AudioOption.OptionTypes.FadeIn:
                fadeIn = option.GetValue <float>();
                break;

            case AudioOption.OptionTypes.FadeInCurve:
                fadeInCurve = option.GetValue <AnimationCurve>();
                break;

            case AudioOption.OptionTypes.FadeOut:
                fadeOut = option.GetValue <float>();
                break;

            case AudioOption.OptionTypes.FadeOutCurve:
                fadeOutCurve = option.GetValue <AnimationCurve>();
                break;

            case AudioOption.OptionTypes.RandomVolume:
                randomVolume = option.GetValue <float>();
                break;

            case AudioOption.OptionTypes.RandomPitch:
                randomPitch = option.GetValue <float>();
                break;

            case AudioOption.OptionTypes.DoNotKill:
                doNotKill = option.GetValue <bool>();
                break;

            case AudioOption.OptionTypes.Clip:
                audioSource.clip = option.GetValue <AudioClip>();
                break;

            case AudioOption.OptionTypes.Mute:
                audioSource.mute = option.GetValue <bool>();
                break;

            case AudioOption.OptionTypes.BypassEffects:
                audioSource.bypassEffects = option.GetValue <bool>();
                break;

            case AudioOption.OptionTypes.BypassListenerEffects:
                audioSource.bypassListenerEffects = option.GetValue <bool>();
                break;

            case AudioOption.OptionTypes.BypassReverbZones:
                audioSource.bypassReverbZones = option.GetValue <bool>();
                break;

            case AudioOption.OptionTypes.Loop:
                audioSource.loop = option.GetValue <bool>();
                break;

            case AudioOption.OptionTypes.Priority:
                audioSource.priority = option.GetValue <int>();
                break;

            case AudioOption.OptionTypes.Volume:
                audioSource.volume = option.GetValue <float>();
                break;

            case AudioOption.OptionTypes.Pitch:
                audioSource.pitch = option.GetValue <float>();
                break;

            case AudioOption.OptionTypes.DopplerLevel:
                audioSource.dopplerLevel = option.GetValue <float>();
                break;

            case AudioOption.OptionTypes.VolumeRolloff:
                audioSource.rolloffMode = option.GetValue <AudioRolloffMode>();
                break;

            case AudioOption.OptionTypes.MinDistance:
                audioSource.minDistance = option.GetValue <float>();
                break;

            case AudioOption.OptionTypes.PanLevel:
                audioSource.panLevel = option.GetValue <float>();
                break;

            case AudioOption.OptionTypes.Spread:
                audioSource.spread = option.GetValue <float>();
                break;

            case AudioOption.OptionTypes.MaxDistance:
                audioSource.maxDistance = option.GetValue <float>();
                break;

            case AudioOption.OptionTypes.Pan2D:
                audioSource.pan = option.GetValue <float>();
                break;
            }
        }