/// <summary> /// Start is called on the frame when a script is enabled just before /// any of the Update methods is called the first time. /// </summary> public void Start() { orderLibrary = Resources.Load("Order Library") as OrderLibrary; orderPool = PoolManager.Pools["Orders"]; spawnMessage = MessageBroker.Default.Receive <SpawnOrderMessage>().Subscribe(message => { if (orderLibrary.library.ContainsKey(message.Type)) { Transform spawned = Spawn(orderLibrary.library[message.Type], message.Parent); message.Order.Invoke(spawned.GetComponent <OrderController>()); } else { throw new KeyNotFoundException("The requested key " + message.Type + " could not be found."); } }); despawnMessage = MessageBroker.Default.Receive <DespawnOrderMessage>().Subscribe(message => { if (message.Order == null) { DespawnAll(); } else { Despawn(message.Order); } }); }