Beispiel #1
0
        public void Initialize(AudioSourceSettings settings, AudioItemManager itemManager, AudioSource audioSource, AudioSpatializer spatializer, IAudioItem parent)
        {
            base.Initialize(settings.Identifier, itemManager, spatializer, parent);

            // General Setup
            originalSettings        = settings;
            this.settings           = PrefabPoolManager.Create(settings);
            source                  = audioSource;
            source.transform.parent = itemManager.AudioManager.Reference.transform.parent;
            base.spatializer.AddSource(source.transform);

            // Setup the AudioSource
            source.Stop();
            source.clip = this.settings.Clip;
            source.name = settings.Name;
            source.outputAudioMixerGroup = this.settings.Output;
            source.loop         = this.settings.Loop;
            source.spatialBlend = base.spatializer.SpatializeMode == AudioSpatializer.SpatializeModes.None ? 0f : source.spatialBlend;

            InitializeModifiers(originalSettings);

            for (int i = 0; i < originalSettings.Options.Count; i++)
            {
                ApplyOption(originalSettings.Options[i], false);
            }

            if (this.settings.MaxInstances > 0)
            {
                itemManager.TrimInstances(this, this.settings.MaxInstances);
            }
        }
Beispiel #2
0
        public override void OnRecycle()
        {
            base.OnRecycle();

            delays.Clear();
            PrefabPoolManager.Recycle(ref settings);
        }
Beispiel #3
0
        public override void OnRecycle()
        {
            base.OnRecycle();

            PrefabPoolManager.Recycle(source);
            PrefabPoolManager.Recycle(ref settings);
        }
Beispiel #4
0
 public static void ClearAllPools()
 {
     ToUpdate.Clear();
     TypePoolManager.ClearPools();
     PrefabPoolManager.ClearPools();
     cachedJanitor.Reset();
 }
Beispiel #5
0
        public override void OnRecycle()
        {
            base.OnRecycle();

            PrefabPoolManager.Recycle(settings);
            TypePoolManager.RecycleElements(dynamicData);
        }
Beispiel #6
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;
        }
Beispiel #7
0
        public override void End(bool space = true)
        {
            base.End(space);

            if (GUI.changed)
            {
                PrefabPoolManager.ResetPool(settings);
            }
        }
Beispiel #8
0
        public IEntity CreateEntity(EntityBehaviour prefab)
        {
            Assert.IsNotNull(prefab);

            var entity = PrefabPoolManager.Create(prefab);

            entity.Initialize(this);

            return(entity.Entity);
        }
 // Use this for initialization
 void Awake()
 {
     if (_current == null){
       // We are the first! We must has the precious!
       _current = this;
       DontDestroyOnLoad(this);
     }
     else {
       if (this != _current)
     Destroy(this.gameObject);
     }
 }
Beispiel #10
0
        public void Initialize(AudioMixContainerSettings settings, AudioItemManager itemManager, AudioSpatializer spatializer, IAudioItem parent)
        {
            base.Initialize(settings.Identifier, itemManager, spatializer, parent);

            originalSettings = settings;
            this.settings    = PrefabPoolManager.Create(settings);

            InitializeModifiers(originalSettings);
            InitializeSources();

            for (int i = 0; i < originalSettings.Options.Count; i++)
            {
                ApplyOption(originalSettings.Options[i], false);
            }
        }
 // Use this for initialization
 void Awake()
 {
     if (_current == null)
     {
         // We are the first! We must has the precious!
         _current = this;
         DontDestroyOnLoad(this);
     }
     else
     {
         if (this != _current)
         {
             Destroy(this.gameObject);
         }
     }
 }
Beispiel #12
0
        public void RecycleEffect <T>(T instance) where T : ParticleEffect
        {
            Assert.IsNotNull(instance);

            if (instance.IsPlaying)
            {
                instance.Stop();
            }

            ParticleEffect prefab;

            if (activeEffectToPrefab.TryGetValue(instance, out prefab))
            {
                var activeEffects = prefabToActiveEffects[prefab];
                activeEffects.Remove(instance);
            }

            PrefabPoolManager.Recycle(instance);
        }
Beispiel #13
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);
            }
        }
Beispiel #14
0
        public T CreateEffect <T>(T prefab, Vector3 position, Transform parent) where T : ParticleEffect
        {
            Assert.IsNotNull(prefab);

            var effect = PrefabPoolManager.Create(prefab);

            effect.Initialize(this, position, parent);
            activeEffectToPrefab[prefab] = effect;

            List <ParticleEffect> activeEffects;

            if (!prefabToActiveEffects.TryGetValue(prefab, out activeEffects))
            {
                activeEffects = new List <ParticleEffect>();
                prefabToActiveEffects[prefab] = activeEffects;
            }

            activeEffects.Add(effect);

            return(effect);
        }
Beispiel #15
0
        public void RecycleEntity(EntityBehaviour instance)
        {
            Assert.IsNotNull(instance);

            PrefabPoolManager.Recycle(instance);
        }
 public void OnEnable()
 {
     m_pxPrefabPoolManager = (PrefabPoolManager)target;
 }