public override void Execute(INotification notification) { //生成随机奖励 //获取Proxy,可以定义出来,不需要每次都获取 BonusProxy bonus = Facade.RetrieveProxy(BonusProxy.NAME) as BonusProxy; if (bonus != null) { //生成随机奖励 bonus.Clear(); //bonus.RandomCreate(); bonus.CreateRewardPool(12); Debug.Log("start REFRESH_BONUS_UI"); MainPanelMediator mediator = Facade.RetrieveMediator(MainPanelMediator.NAME) as MainPanelMediator; //先清除已有的BonusItem //mediator.DestroyAll (); bool newCreate = mediator.BonusItemCount == 0; GameObject obj = null; for (int i = 0; i < bonus.BonusLists.Count; ++i) { if (newCreate) { obj = mediator.InstanceBonusItem(); obj.SetActive(true); } else { obj = mediator.BonusItem(i); } BonusIem item = obj.GetComponent <BonusIem> (); if (item != null) { //更新Item item.UpdateItem(bonus.BonusLists[i]); } //mediator.BonusItemLists.Add (obj); mediator.AddItems(obj); } //更新UI,并显示MainPanelView面板 SendNotification(MyFacade04.REFRESH_BONUS_UI); Debug.Log("==============RefreshRewardPoolCommand done"); } }
public override void Execute(INotification notification) { //开始随机 BonusProxy bonus = MyFacade.Instance.RetrieveProxy(BonusProxy.NAME) as BonusProxy; int id = Random.Range(0, bonus.BonusLists.Count); Debug.Log("result:" + bonus.BonusLists[id].Name + "," + bonus.BonusLists[id].Reward); //改变数值 并发送消息 PlayerDataProxy playerData = Facade.RetrieveProxy(PlayerDataProxy.NAME) as PlayerDataProxy; if (playerData != null) { playerData.GetReward(bonus.BonusLists[id].Reward, bonus.BonusLists[id].Name); Debug.Log("================PlayCommand"); } }