// sends a message // method is used from other instances to tell that an audio event has occured public void SendSpawnerMessageForDispatch(string message) { SpawnerMessage msg = new SpawnerMessage(); // creates a new spanwer message msg.message = message; // the message spawnerMessages.Enqueue(msg); // add this message to queue for dispatch }
// Update is called once per frame void Update() { // if messages queue has message(s) for dispatch while (spawnerMessages.Count != 0) { // take the first message added to the queue SpawnerMessage msg = spawnerMessages.Dequeue(); try { // send the message to the handlers that are interested foreach (SpawnersMessageHandler messageHandler in spanwnersMessageHandlers) { messageHandler(msg.message); } } catch { spawnerMessages.Enqueue(msg); } } }