public AudioDynamicItem CreateDynamicItem(Func<AudioDynamicItem, AudioDynamicData, AudioSettingsBase> getNextSettings, AudioSpatializer spatializer, AudioItem parent) { AudioDynamicItem item = Pool<AudioDynamicItem>.Create(AudioDynamicItem.Default); item.Initialize(getNextSettings, spatializer, parent); return item; }
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; }
public void Initialize(DynamicGetter getNextSettings, AudioItemManager itemManager, AudioSpatializer spatializer, IAudioItem parent) { settings = TypePoolManager.Create <AudioDynamicSettings>(); base.Initialize(settings.Identifier, itemManager, spatializer, parent); this.getNextSettings = getNextSettings ?? delegate { return(null); }; InitializeModifiers(settings); InitializeSources(); }