public void PlayAtPosition(GameObject go, AudioNode audioNode, Vector3 position) { var poolObject = pool.GetObject(); poolObject.transform.position = position; if (player == null) { player = poolObject.GetComponent <RuntimePlayer>(); } GetValue(GOAudioNodes, go).Add(new RuntimeTuple(audioNode, player)); player.Play(audioNode); }
public void Play(GameObject controllingObject, AudioNode audioNode, GameObject attachedTo) { var poolObject = pool.GetObject(); poolObject.transform.parent = attachedTo.transform; poolObject.transform.localPosition = new Vector3(); if (player == null) { player = poolObject.GetComponent <RuntimePlayer>(); } GetValue(GOAudioNodes, controllingObject).Add(new RuntimeTuple(audioNode, player)); player.Play(audioNode); }
public void StopAll(GameObject controllingObject) { List <RuntimeTuple> valueTupleList; GOAudioNodes.TryGetValue(controllingObject, out valueTupleList); if (valueTupleList != null) { for (int i = 0; i < valueTupleList.Count; ++i) { RuntimePlayer player = valueTupleList[i].Player; player.Stop(); valueTupleList.SwapRemoveAt(i); } } }
public RuntimeTuple(AudioNode node, RuntimePlayer player) { Node = node; Player = player; }