void UpdateNum(GarbageVo garbage) { if (this.garbage == garbage) { view.Txt_Num.text = garbage.Num.ToString(); } }
/// <summary> /// 当玩家碰到垃圾时,将垃圾放入玩家背包 /// </summary> /// <param name="other"></param> void OnTriggerEnter2D(Collider2D other) { PlayerController pc = other.GetComponent <PlayerController>(); if (pc != null) { //向背包中添加垃圾 GarbageVo garbage = GarbageModel.Instance.GetGarbageById(int.Parse(transform.name)); GarbageModel.Instance.AddGarbage(garbage.Clone()); Destroy(this.gameObject); } }
public void OnXmlLoad() { TextAsset xml = ResourcesManager.Load <TextAsset>("Configs/Garbages"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xml.text); XmlNodeList list = xmlDoc.SelectSingleNode("root").ChildNodes; foreach (XmlElement item in list) { GarbageVo garbage = new GarbageVo(item); garbageDict[garbage.Id] = garbage; } }
public void SetData(GarbageVo garbage) { model = GarbageModel.Instance; view = GetComponent <GarbageItemView>(); model.updateNum += UpdateNum;//添加事件触发函数 view.Btn_Choose.gameObject.SetActive(false); UIEventListener.Get(view.Img_Icon).OnClickHandler += OnChooseGarge; UIEventListener.Get(view.Img_Icon).OnBeginDragHandler += OnBeginDrag; UIEventListener.Get(view.Img_Icon).OnDragHandler += OnDrag; UIEventListener.Get(view.Img_Icon).OnEndDragHandler += OnEndDrag; this.garbage = garbage; view.Img_Icon.sprite = ResourcesManager.Load <Sprite>("Garbages/" + garbage.Id); view.Txt_Num.text = garbage.Num.ToString(); }
void AddGarbage(GarbageVo garbage) { //实例化一个垃圾的预制物出来 GameObject prefabs = ResourcesManager.Load("Prefabs/GarbageItemView"); GameObject garbageItem = Instantiate(prefabs) as GameObject; //将垃圾放置到第一个空格子处,位置归0 RectTransform firstEmptyGrid = GetFirstEmptyGrid(); if (firstEmptyGrid != null) { garbageItem.transform.SetParent(firstEmptyGrid); garbageItem.transform.localPosition = Vector2.zero; garbageItem.transform.localScale = Vector2.one; //给当前垃圾进行赋值操作 GarbageItemControl scripts = garbageItem.GetComponent <GarbageItemControl>(); scripts.SetData(garbage); } }
public void AddGarbage(GarbageVo garbage) { for (int i = 0; i < bagList.Count; i++) { if (bagList[i].Id == garbage.Id && bagList[i].Num < bagList[i].MaxCount) { bagList[i].Num++; //通知垃圾自己去刷新垃圾数量 updateNum(bagList[i]); return; } } //背包中没有这个垃圾 bagList.Add(garbage); //通知界面去刷新 addGarbage(garbage); }
public void RemoveGarbage(GarbageVo garbage) { bagList.Remove(garbage); }