Exemplo n.º 1
0
        /// <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);
                }
            });
        }