private void OnSoundControllerListChanged(object o, AudioEmitterComponent.ControllerCollectionChangedEventArgs args) { AssociatedData associatedData = null; throw new NotImplementedException(); //if (!ComponentDatas.TryGetValue(args.Entity, out associatedData)) // return; // A new SoundEffect have been associated to the AudioEmitterComponenent or an old SoundEffect have been deleted. // We need to create/destroy the corresponding SoundEffectInstances. var listeners = audioSystem.Listeners.Keys; foreach (var listener in listeners) { var currentTuple = Tuple.Create(listener, args.Controller); if (args.Action == NotifyCollectionChangedAction.Add) { associatedData.ListenerControllerToSoundInstance[currentTuple] = args.Controller.CreateSoundInstance(); } else if (args.Action == NotifyCollectionChangedAction.Remove) { args.Controller.DestroySoundInstance(associatedData.ListenerControllerToSoundInstance[currentTuple]); associatedData.ListenerControllerToSoundInstance.Remove(currentTuple); } } }
private void OnSoundControllerListChanged(object o, AudioEmitterComponent.ControllerCollectionChangedEventArgs args) { AssociatedData associatedData; if (!ComponentDatas.TryGetValue(args.EmitterComponent, out associatedData)) { return; } // A new Sound have been associated to the AudioEmitterComponenent or an old Sound have been deleted. // We need to create/destroy the corresponding SoundInstances. var listeners = audioSystem.Listeners.Keys; foreach (var listener in listeners) { if (args.Action == NotifyCollectionChangedAction.Add) { args.Controller.CreateSoundInstance(listener); } else if (args.Action == NotifyCollectionChangedAction.Remove) { args.Controller.DestroySoundInstances(listener); } } }