Example #1
0
        static void StopPreview()
        {
            if (audioManager == null)
            {
                return;
            }

            if (previewItem != null)
            {
                previewItem.StopImmediate();
                previewItem = null;
            }

            if (previewSettings != null)
            {
                EditorUtility.SetDirty(previewSettings);
                EditorApplication.RepaintProjectWindow();
                previewSettings = null;
            }

            if (!Application.isPlaying)
            {
                PrefabPoolManager.ClearPool(audioManager.Reference);
            }

            stopPreview = false;
        }
        public AudioItem CreateItem(AudioSettingsBase settings, Transform follow)
        {
            AudioSpatializer spatializer = Pool<AudioSpatializer>.Create(AudioSpatializer.Default);
            spatializer.Initialize(follow);

            return CreateItem(settings, spatializer, null);
        }
        public AudioItem CreateItem(AudioSettingsBase settings, Vector3 position)
        {
            AudioSpatializer spatializer = Pool<AudioSpatializer>.Create(AudioSpatializer.Default);
            spatializer.Initialize(position);

            return CreateItem(settings, spatializer, null);
        }
        public virtual void OnSourceDropped(AudioSettingsBase settings)
        {
            AddToArray(sourcesProperty);

            var sourceProperty = sourcesProperty.Last();
            sourceProperty.SetValue("Settings", settings);
            sourceProperty.FindPropertyRelative("Options").Clear();
        }
Example #5
0
        public IAudioItem CreateItem(AudioSettingsBase settings, Func <Vector3> getPosition)
        {
            var spatializer = TypePoolManager.Create <AudioSpatializer>();

            spatializer.Initialize(getPosition);

            return(CreateItem(settings, spatializer, null));
        }
Example #6
0
        public IAudioItem CreateItem(AudioSettingsBase settings, Transform follow)
        {
            var spatializer = TypePoolManager.Create <AudioSpatializer>();

            spatializer.Initialize(follow);

            return(CreateItem(settings, spatializer, null));
        }
Example #7
0
 static void PlayPreview(AudioSettingsBase settings)
 {
     StopPreview();
     EditorUtility.SetDirty(settings);
     previewSettings     = settings;
     previewItem         = audioManager.CreateItem(previewSettings);
     previewItem.OnStop += item => { stopPreview = true; previewItem = null; };
     previewItem.Play();
 }
Example #8
0
        public virtual void OnSourceDropped(AudioSettingsBase settings)
        {
            AddToArray(sourcesProperty);

            var sourceProperty = sourcesProperty.Last();

            sourceProperty.SetValue("Settings", settings);
            sourceProperty.FindPropertyRelative("Options").Clear();
        }
Example #9
0
        protected void InitializeModifiers(AudioSettingsBase settings)
        {
            volumeModifier.OnValueChanged += setVolumeScale;
            volumeModifier.InitialValue    = settings.VolumeScale;
            volumeModifier.RandomModifier  = 1f + UnityEngine.Random.Range(-settings.RandomVolume, settings.RandomVolume);

            pitchModifier.OnValueChanged += setPitchScale;
            pitchModifier.InitialValue    = settings.PitchScale;
            pitchModifier.RandomModifier  = 1f + UnityEngine.Random.Range(-settings.RandomPitch, settings.RandomPitch);
        }
Example #10
0
        public static void ShowPreviewButton(Rect rect, AudioSettingsBase settings)
        {
            if (audioManager == null)
            {
                return;
            }

            // Check if scrollbar is visible
            if (Screen.width - rect.x - rect.width > 5f)
            {
                rect.x = Screen.width - 40f;
            }
            else
            {
                rect.x = Screen.width - 24f;
            }

            rect.width  = 21f;
            rect.height = 16f;

            var buttonStyle = new GUIStyle("MiniToolbarButtonLeft");

            buttonStyle.fixedHeight += 1;

            if (GUI.Button(rect, "", buttonStyle))
            {
                Selection.activeObject = settings;

                if (previewSettings != settings || (previewItem != null && previewItem.State == AudioStates.Stopping))
                {
                    PlayPreview(settings);
                }
                else if (previewItem != null)
                {
                    previewItem.Stop();
                }
                else
                {
                    StopPreview();
                }
            }

            bool playing    = previewItem == null || previewItem.State == AudioStates.Stopping || previewSettings != settings;
            var  labelStyle = new GUIStyle("boldLabel");

            labelStyle.fixedHeight  += 1;
            labelStyle.fontSize      = playing ? 14 : 20;
            labelStyle.contentOffset = playing ? new Vector2(2f, -2f) : new Vector2(2f, -7f);
            labelStyle.clipping      = TextClipping.Overflow;

            GUI.Label(rect, playing ? "►" : "■", labelStyle);
        }
        public static void ShowPreviewButton(Rect rect, AudioSettingsBase settings)
        {
            if (AudioManager.Find() == null)
                return;

            // Check if scrollbar is visible
            if (Screen.width - rect.x - rect.width > 5f)
                rect.x = Screen.width - 40f;
            else
                rect.x = Screen.width - 24f;

            rect.width = 21f;
            rect.height = 16f;

            GUIStyle buttonStyle = new GUIStyle("MiniToolbarButtonLeft");
            buttonStyle.fixedHeight += 1;

            if (GUI.Button(rect, "", buttonStyle))
            {
                Selection.activeObject = settings;

                if (_previewSettings != settings || (_previewItem != null && _previewItem.State == AudioItem.AudioStates.Stopping))
                {
                    StopPreview();

                    EditorUtility.SetDirty(settings);
                    _previewSettings = settings;
                    _previewItem = AudioManager.Instance.CreateItem(_previewSettings);
                    _previewItem.OnStop += item => { StopPreview(); EditorUtility.SetDirty(settings); EditorApplication.RepaintProjectWindow(); };
                    _previewItem.Play();
                }
                else if (_previewItem != null)
                    _previewItem.Stop();
                else
                    StopPreview();
            }

            bool playing = _previewItem == null || _previewItem.State == AudioItem.AudioStates.Stopping || _previewSettings != settings;
            GUIStyle labelStyle = new GUIStyle("boldLabel");
            labelStyle.fixedHeight += 1;
            labelStyle.fontSize = playing ? 14 : 20;
            labelStyle.contentOffset = playing ? new Vector2(2f, -1f) : new Vector2(2f, -8f);
            labelStyle.clipping = TextClipping.Overflow;

            GUI.Label(rect, playing ? "►" : "■", labelStyle);
        }
Example #12
0
        public AudioItemBase CreateItem(AudioSettingsBase settings, AudioSpatializer spatializer, IAudioItem parent)
        {
            if (settings == null)
            {
                return(null);
            }

            switch (settings.Type)
            {
            default:
                var sourceItem = TypePoolManager.Create <AudioSourceItem>();
                var source     = PrefabPoolManager.Create(audioManager.Reference);
                source.Copy(audioManager.Reference, audioManager.UseCustomCurves);
                sourceItem.Initialize((AudioSourceSettings)settings, this, source, spatializer, parent);
                return(sourceItem);

            case AudioTypes.MixContainer:
                var mixContainerItem = TypePoolManager.Create <AudioMixContainerItem>();
                mixContainerItem.Initialize((AudioMixContainerSettings)settings, this, spatializer, parent);
                return(mixContainerItem);

            case AudioTypes.RandomContainer:
                var randomContainerItem = TypePoolManager.Create <AudioRandomContainerItem>();
                randomContainerItem.Initialize((AudioRandomContainerSettings)settings, this, spatializer, parent);
                return(randomContainerItem);

            case AudioTypes.EnumeratorContainer:
                var enumeratorContainerItem = TypePoolManager.Create <AudioEnumeratorContainerItem>();
                enumeratorContainerItem.Initialize((AudioEnumeratorContainerSettings)settings, this, spatializer, parent);
                return(enumeratorContainerItem);

            case AudioTypes.SwitchContainer:
                var switchContainerItem = TypePoolManager.Create <AudioSwitchContainerItem>();
                switchContainerItem.Initialize((AudioSwitchContainerSettings)settings, this, spatializer, parent);
                return(switchContainerItem);

            case AudioTypes.SequenceContainer:
                var sequenceContainerItem = TypePoolManager.Create <AudioSequenceContainerItem>();
                sequenceContainerItem.Initialize((AudioSequenceContainerSettings)settings, this, spatializer, parent);
                return(sequenceContainerItem);
            }
        }
Example #13
0
        protected virtual IAudioItem AddSource(AudioSettingsBase settings, List <AudioOption> options)
        {
            AudioItemBase item = null;

            if (settings != null)
            {
                item = itemManager.CreateItem(settings, spatializer, this);

                if (options != null)
                {
                    for (int i = 0; i < options.Count; i++)
                    {
                        item.ApplyOption(options[i], false);
                    }
                }

                sources.Add(item);
                volumeModifier.SimulateChange();
                pitchModifier.SimulateChange();
            }

            return(item);
        }
        public override void OnEnable()
        {
            base.OnEnable();

            _settings = (AudioSettingsBase)target;
        }
        protected virtual IAudioItem AddSource(AudioSettingsBase settings, List<AudioOption> options)
        {
            AudioItemBase item = null;

            if (settings != null)
            {
                item = itemManager.CreateItem(settings, spatializer, this);

                if (options != null)
                {
                    for (int i = 0; i < options.Count; i++)
                        item.ApplyOption(options[i], false);
                }

                sources.Add(item);
                volumeModifier.SimulateChange();
                pitchModifier.SimulateChange();
            }

            return item;
        }
 public abstract float GetSettingsLength(AudioSettingsBase settings);
        public IAudioItem CreateItem(AudioSettingsBase settings)
        {
            var spatializer = TypePoolManager.Create<AudioSpatializer>();

            return CreateItem(settings, spatializer, null);
        }
        public IAudioItem CreateItem(AudioSettingsBase settings, Vector3 position)
        {
            var spatializer = TypePoolManager.Create<AudioSpatializer>();
            spatializer.Initialize(position);

            return CreateItem(settings, spatializer, null);
        }
Example #19
0
 public virtual void OnSettingsDropped(AudioSettingsBase settings)
 {
     sourceSettingsProperty.SetValue(settings);
 }
        public AudioItem CreateItem(AudioSettingsBase settings, AudioSpatializer spatializer, AudioItem parent)
        {
            if (settings == null)
                return null;

            AudioItem item;

            switch (settings.Type)
            {
                default:
                    AudioSourceItem sourceItem = Pool<AudioSourceItem>.Create(AudioSourceItem.Default);
                    AudioSource source = ComponentPool<AudioSource>.Create(AudioManager.Instance.Reference);
                    source.Copy(AudioManager.Instance.Reference, AudioManager.Instance.UseCustomCurves);
                    sourceItem.Initialize((AudioSourceSettings)settings, source, spatializer, parent);
                    item = sourceItem;
                    break;
                case AudioItem.AudioTypes.MixContainer:
                    AudioMixContainerItem mixContainerItem = Pool<AudioMixContainerItem>.Create(AudioMixContainerItem.Default);
                    mixContainerItem.Initialize((AudioMixContainerSettings)settings, spatializer, parent);
                    item = mixContainerItem;
                    break;
                case AudioItem.AudioTypes.RandomContainer:
                    AudioRandomContainerItem randomContainerItem = Pool<AudioRandomContainerItem>.Create(AudioRandomContainerItem.Default);
                    randomContainerItem.Initialize((AudioRandomContainerSettings)settings, spatializer, parent);
                    item = randomContainerItem;
                    break;
                case AudioItem.AudioTypes.EnumeratorContainer:
                    AudioEnumeratorContainerItem enumeratorContainerItem = Pool<AudioEnumeratorContainerItem>.Create(AudioEnumeratorContainerItem.Default);
                    enumeratorContainerItem.Initialize((AudioEnumeratorContainerSettings)settings, spatializer, parent);
                    item = enumeratorContainerItem;
                    break;
                case AudioItem.AudioTypes.SwitchContainer:
                    AudioSwitchContainerItem switchContainerItem = Pool<AudioSwitchContainerItem>.Create(AudioSwitchContainerItem.Default);
                    switchContainerItem.Initialize((AudioSwitchContainerSettings)settings, spatializer, parent);
                    item = switchContainerItem;
                    break;
                case AudioItem.AudioTypes.SequenceContainer:
                    AudioSequenceContainerItem sequenceContainerItem = Pool<AudioSequenceContainerItem>.Create(AudioSequenceContainerItem.Default);
                    sequenceContainerItem.Initialize((AudioSequenceContainerSettings)settings, spatializer, parent);
                    item = sequenceContainerItem;
                    break;
            }

            return item;
        }
Example #21
0
 public override float GetSettingsLength(AudioSettingsBase settings)
 {
     return(((AudioSourceSettings)settings).GetLength());
 }
Example #22
0
 public abstract float GetSettingsLength(AudioSettingsBase settings);
        protected virtual void InitializeModifiers(AudioSettingsBase settings)
        {
            volumeModifier.OnValueChanged += setVolumeScale;
            volumeModifier.InitialValue = settings.VolumeScale;
            volumeModifier.RandomModifier = 1f + UnityEngine.Random.Range(-settings.RandomVolume, settings.RandomVolume);

            pitchModifier.OnValueChanged += setPitchScale;
            pitchModifier.InitialValue = settings.PitchScale;
            pitchModifier.RandomModifier = 1f + UnityEngine.Random.Range(-settings.RandomPitch, settings.RandomPitch);
        }
        static void StopPreview()
        {
            if (AudioManager.Find() == null)
                return;

            if (_previewItem != null)
            {
                _previewItem.StopImmediate();
                _previewItem = null;
                _previewSettings = null;
            }
        }
Example #25
0
        public IAudioItem CreateItem(AudioSettingsBase settings)
        {
            var spatializer = TypePoolManager.Create <AudioSpatializer>();

            return(CreateItem(settings, spatializer, null));
        }
 public override float GetSettingsLength(AudioSettingsBase settings)
 {
     return float.MaxValue;
 }
 public virtual void OnSettingsDropped(AudioSettingsBase settings)
 {
     sourceSettingsProperty.SetValue(settings);
 }
Example #28
0
        public override void OnEnable()
        {
            base.OnEnable();

            settings = (AudioSettingsBase)target;
        }
        public IAudioItem CreateItem(AudioSettingsBase settings, Transform follow)
        {
            var spatializer = TypePoolManager.Create<AudioSpatializer>();
            spatializer.Initialize(follow);

            return CreateItem(settings, spatializer, null);
        }
 public override float GetSettingsLength(AudioSettingsBase settings)
 {
     return ((AudioSourceSettings)settings).GetLength();
 }
        public AudioItemBase CreateItem(AudioSettingsBase settings, AudioSpatializer spatializer, IAudioItem parent)
        {
            if (settings == null)
                return null;

            switch (settings.Type)
            {
                default:
                    var sourceItem = TypePoolManager.Create<AudioSourceItem>();
                    var source = PrefabPoolManager.Create(audioManager.Reference);
                    source.Copy(audioManager.Reference, audioManager.UseCustomCurves);
                    sourceItem.Initialize((AudioSourceSettings)settings, this, source, spatializer, parent);
                    return sourceItem;
                case AudioTypes.MixContainer:
                    var mixContainerItem = TypePoolManager.Create<AudioMixContainerItem>();
                    mixContainerItem.Initialize((AudioMixContainerSettings)settings, this, spatializer, parent);
                    return mixContainerItem;
                case AudioTypes.RandomContainer:
                    var randomContainerItem = TypePoolManager.Create<AudioRandomContainerItem>();
                    randomContainerItem.Initialize((AudioRandomContainerSettings)settings, this, spatializer, parent);
                    return randomContainerItem;
                case AudioTypes.EnumeratorContainer:
                    var enumeratorContainerItem = TypePoolManager.Create<AudioEnumeratorContainerItem>();
                    enumeratorContainerItem.Initialize((AudioEnumeratorContainerSettings)settings, this, spatializer, parent);
                    return enumeratorContainerItem;
                case AudioTypes.SwitchContainer:
                    var switchContainerItem = TypePoolManager.Create<AudioSwitchContainerItem>();
                    switchContainerItem.Initialize((AudioSwitchContainerSettings)settings, this, spatializer, parent);
                    return switchContainerItem;
                case AudioTypes.SequenceContainer:
                    var sequenceContainerItem = TypePoolManager.Create<AudioSequenceContainerItem>();
                    sequenceContainerItem.Initialize((AudioSequenceContainerSettings)settings, this, spatializer, parent);
                    return sequenceContainerItem;
            }
        }
Example #32
0
 public override float GetSettingsLength(AudioSettingsBase settings)
 {
     return(float.MaxValue);
 }
        public AudioItem CreateItem(AudioSettingsBase settings)
        {
            AudioSpatializer spatializer = Pool<AudioSpatializer>.Create(AudioSpatializer.Default);

            return CreateItem(settings, spatializer, null);
        }