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); } }
public IEntity CreateEntity(EntityBehaviour prefab) { Assert.IsNotNull(prefab); var entity = PrefabPoolManager.Create(prefab); entity.Initialize(this); return(entity.Entity); }
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); } }
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); } }
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); }