/// <summary> /// 购买物品后添加物品给玩家 /// </summary> /// <param name="info"></param> public void AddItem(ItemInfo info) { Item item = GameDataMgr.GetInstance().GetItemInfo(info.id); switch (item.type) { case (int)E_Bag_Type.Item: items.Add(info); break; case (int)E_Bag_Type.Equip: equips.Add(info); break; case (int)E_Bag_Type.Gem: gems.Add(info); break; } }
void Update() { obj = this.transform.parent.parent.gameObject; Oname = obj.name; // STARVING.value -= Time.deltaTime / 0.5f; // GameDataMgr.GetInstance().playerInfos[0].starving = (float)STARVING.value; Oname = Oname.Split('_')[1]; id = int.Parse(Oname); if (!GameDataMgr.GetInstance().playerInfos[id].alive) { GameDataMgr.GetInstance().playerInfos[id].starving = 0; return; } GameDataMgr.GetInstance().playerInfos[id].starving -= Time.deltaTime / 0.1f; if (GameDataMgr.GetInstance().playerInfos[id].starving < 0) { GameDataMgr.GetInstance().playerInfos[id].starving = 0; } STARVING.value = (float)GameDataMgr.GetInstance().playerInfos[id].starving; }
/// <summary> /// 初始化每一项的信息 /// </summary> /// <param name="info"></param> public void InitInfo(ShopCellInfo info) { this.info = info; //根据售卖的道具id可以得到道具表信息 Item item = GameDataMgr.GetInstance().GetItemInfo(info.itemInfo.id); Debug.Log("ahahhaha " + info.itemInfo.id); //图标 GetControl <Image>("imageIcon").sprite = ResMgr.GetInstance().Load <Sprite>("Icon/" + item.icon); //个数 GetControl <Text>("txtNum").text = info.itemInfo.num.ToString(); //名字 GetControl <Text>("txtName").text = item.name; //价格图标 GetControl <Image>("imageType").sprite = ResMgr.GetInstance().Load <Sprite>("Icon/" + (info.priceType == 1 ? "5":"6")); //价格 GetControl <Text>("txtPrice").text = item.price.ToString(); //描述信息 GetControl <Text>("txtTips").text = info.tips; }
void Update() { obj = this.transform.parent.parent.gameObject; Oname = obj.name; //THIRSTY.value -= Time.deltaTime / 0.3f; //GameDataMgr.GetInstance().playerInfos[0].thirsty=(float)THIRSTY.value; Oname = Oname.Split('_')[1]; id = int.Parse(Oname); if (!GameDataMgr.GetInstance().playerInfos[id].alive) { GameDataMgr.GetInstance().playerInfos[id].thirsty = 0; return; } GameDataMgr.GetInstance().playerInfos[id].thirsty -= Time.deltaTime / 0.3f; if (GameDataMgr.GetInstance().playerInfos[id].thirsty < 0) { GameDataMgr.GetInstance().playerInfos[id].thirsty = 0; } THIRSTY.value = (float)GameDataMgr.GetInstance().playerInfos[id].thirsty; }
public override void CollectObservations(VectorSensor sensor) { // 形成一个四维向量: (posX, posY, edible, drinkable) //sensor.AddObservation(transform.position); // String Oname = transform.gameObject.name; id = int.Parse(transform.gameObject.name.Split('_')[1]); float posX = (float)GameDataMgr.GetInstance().playerInfos[id].posX; float posY = (float)GameDataMgr.GetInstance().playerInfos[id].posY; sensor.AddObservation(posX); sensor.AddObservation(posY); sensor.AddObservation((float)GameDataMgr.GetInstance().playerInfos[id].health); sensor.AddObservation((float)GameDataMgr.GetInstance().playerInfos[id].thirsty); sensor.AddObservation((float)GameDataMgr.GetInstance().playerInfos[id].starving); int[,] ret = GameDataMgr.GetInstance().getPlayerVision(id, posX, posY); for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { sensor.AddObservation((float)ret[i, j]); } } }
public override void OnActionReceived(ActionBuffers actions) { // ContinuousActions-> DiscreteActions // output 一个七维向量: (w,a,s,d,k,o,j) id = int.Parse(transform.gameObject.name.Split('_')[1]); int[] A = new int[7] { 0, 0, 0, 0, 0, 0, 0 }; A[actions.DiscreteActions[0]] = 1; int moveLeft = A[0]; int moveRight = A[1]; int moveUp = A[2]; int moveDown = A[3]; int drink = A[4]; int eat = A[5]; int attack = A[6]; // Debug.Log($"{moveLeft}, {moveRight}, {moveUp}, {moveDown}, {drink}, {eat}"); if (!GameDataMgr.GetInstance().playerInfos[id].alive) { if (!GameDataMgr.GetInstance().playerInfos[id].dead) { GameDataMgr.GetInstance().playerInfos[id].dead = true; SetReward(-5f); // Debug.Log($"Death of {id}"); dead = true; GameObject player = GameObject.Find("player_" + id.ToString()); player.transform.localScale = new Vector3(0, 0, 0); double aggressivity = 0f, averageStarveOnEat = 0f, averageThirstyOnDrink = 0f, averageHealthOnAttack = 0f; int live = 0; foreach (int id in GameDataMgr.GetInstance().playerInfos.Keys) { if (!GameDataMgr.GetInstance().playerInfos[id].alive) { continue; } live++; aggressivity += GameDataMgr.GetInstance().playerInfos[id].aggressivity; averageStarveOnEat += GameDataMgr.GetInstance().playerInfos[id].averageStarveOnEat; averageThirstyOnDrink += GameDataMgr.GetInstance().playerInfos[id].averageThirstyOnDrink; averageHealthOnAttack += GameDataMgr.GetInstance().playerInfos[id].averageHealthOnAttack; } aggressivity = aggressivity / (float)live; averageStarveOnEat = averageStarveOnEat / (float)live; averageThirstyOnDrink = averageThirstyOnDrink / (float)live; averageHealthOnAttack = averageHealthOnAttack / (float)live; Debug.Log($"Death {id}, Agg{aggressivity}, soe{averageStarveOnEat}, tod{averageThirstyOnDrink}, hoa{averageHealthOnAttack}"); } } else { float reward = ((float)Math.Min(GameDataMgr.GetInstance().playerInfos[id].thirsty, GameDataMgr.GetInstance().playerInfos[id].starving) - 50f) / 50f; SetReward(reward); } // GameDataMgr.GetInstance().deathCounter[id] += 1; int cnt = 0; foreach (int id in GameDataMgr.GetInstance().playerInfos.Keys) { if (GameDataMgr.GetInstance().playerInfos[id].alive) { cnt++; } } if (cnt < 1) { GameDataMgr.GetInstance().restart = true; // while(GameDataMgr.GetInstance().end){ // } foreach (int id in GameDataMgr.GetInstance().playerInfos.Keys) { GameDataMgr.GetInstance().playerRestart(id); GameObject player = GameObject.Find("player_" + id.ToString()); player.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); } EndEpisode(); } float posX = (float)GameDataMgr.GetInstance().playerInfos[id].posX; float posY = (float)GameDataMgr.GetInstance().playerInfos[id].posY; double nx = posX + moveDown - moveUp; double ny = posY - moveLeft + moveRight; if (isAttackable((int)posX, (int)posY)) { GameDataMgr.GetInstance().playerInfos[id].canAttackCount += 1; } if (drink == 1) { GameDataMgr.GetInstance().playerDrink(id, nx, ny); } if (eat == 1) { GameDataMgr.GetInstance().playerEat(id, nx, ny); } if (attack == 1) { GameDataMgr.GetInstance().playerAttack(id, posX, posY); // Debug.Log($"Attack, {id}"); } GameDataMgr.GetInstance().updatePlayerPos(id, (float)nx, (float)ny); }
void Update() { obj = this.gameObject; Oname = obj.name; // drink and eat x_position = transform.position.x; z_position = transform.position.z; //Debug.Log(x_position); if (Input.GetKeyUp("r")) { Oname = Oname.Split('_')[1]; id = int.Parse(Oname); if (!GameDataMgr.GetInstance().playerInfos[id].alive) { GameDataMgr.GetInstance().playerInfos[id].health = 100; GameDataMgr.GetInstance().playerInfos[id].thirsty = 100; GameDataMgr.GetInstance().playerInfos[id].starving = 100; GameDataMgr.GetInstance().playerInfos[id].alive = true; } } if (Input.GetKeyUp("n")) { Oname = Oname.Split('_')[1]; id = int.Parse(Oname); x_position = GameDataMgr.GetInstance().playerInfos[id].posX; z_position = GameDataMgr.GetInstance().playerInfos[id].posY; GameDataMgr.GetInstance().playerDrink(id, x_position, z_position); } if (Input.GetKeyUp("m")) { Oname = Oname.Split('_')[1]; id = int.Parse(Oname); x_position = GameDataMgr.GetInstance().playerInfos[id].posX; z_position = GameDataMgr.GetInstance().playerInfos[id].posY; GameDataMgr.GetInstance().playerEat(id, x_position, z_position); } // move people if (Input.GetKeyUp("w")) { //setState(UP); //Debug.Log("move w"); Oname = Oname.Split('_')[1]; id = int.Parse(Oname); x_position = GameDataMgr.GetInstance().playerInfos[id].posX - 1; z_position = GameDataMgr.GetInstance().playerInfos[id].posY; // x_position = transform.position.x; // z_position = transform.position.z-1; //print(GameDataMgr.GetInstance().playerInfos[id].posX); GameDataMgr.GetInstance().updatePlayerPos(id, x_position, z_position); //print(GameDataMgr.GetInstance().playerInfos[id].posX); } else if (Input.GetKeyUp("s")) { //setState(DOWN); Oname = Oname.Split('_')[1]; id = int.Parse(Oname); // x_position = transform.position.x; // z_position = transform.position.z+1; x_position = GameDataMgr.GetInstance().playerInfos[id].posX + 1; z_position = GameDataMgr.GetInstance().playerInfos[id].posY; GameDataMgr.GetInstance().updatePlayerPos(id, x_position, z_position); } else if (Input.GetKeyUp("a")) { //setState(LEFT); Oname = Oname.Split('_')[1]; id = int.Parse(Oname); // x_position = transform.position.x-1; // z_position = transform.position.z; x_position = GameDataMgr.GetInstance().playerInfos[id].posX; z_position = GameDataMgr.GetInstance().playerInfos[id].posY - 1; GameDataMgr.GetInstance().updatePlayerPos(id, x_position, z_position); } else if (Input.GetKeyUp("d")) { //setState(RIGHT); Oname = Oname.Split('_')[1]; id = int.Parse(Oname); // x_position = transform.position.x+1; // z_position = transform.position.z; x_position = GameDataMgr.GetInstance().playerInfos[id].posX; z_position = GameDataMgr.GetInstance().playerInfos[id].posY + 1; GameDataMgr.GetInstance().updatePlayerPos(id, x_position, z_position); } else if (Input.GetKeyUp("b")) { can_attack = false; // Attack eight positions, if eight positions has people attack them Oname = Oname.Split('_')[1]; id = int.Parse(Oname); // People's position x_position = GameDataMgr.GetInstance().playerInfos[id].posX; z_position = GameDataMgr.GetInstance().playerInfos[id].posY; GameDataMgr.GetInstance().playerAttack(id, x_position, z_position); } else { ani.SetInteger("states", Att2); } }
public int hasPeople(int posX, int posY) { Debug.Log(String.Format("Attack poeple {0:D},{1:D}", posX, posY)); Debug.Log(String.Format("Attacked poeple {0:D},{1:D}", (int)GameDataMgr.GetInstance().playerInfos[0].posX, (int)GameDataMgr.GetInstance().playerInfos[0].posY)); foreach (int id in GameDataMgr.GetInstance().playerInfos.Keys) { if ((int)GameDataMgr.GetInstance().playerInfos[id].posX == posX && (int)GameDataMgr.GetInstance().playerInfos[id].posY == posY) { return(id); } } return(-1); }
void Start() { container = GameObject.Find("Container"); GameObject pfb_empty = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestEmpty") as GameObject; GameObject pfb_tree = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestTreeSpruce_01") as GameObject; GameObject pfb_road_cross = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestCrossing_01") as GameObject; GameObject pfb_road_straight = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestStraight") as GameObject; GameObject pfb_road_Tcross = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestCrossing_02") as GameObject; GameObject pfb_road_curve = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestCurve") as GameObject; GameObject pfb_water = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/ForestLake") as GameObject; GameObject pfb_forest = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/forest") as GameObject; GameObject pfb_mountain = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/mountain") as GameObject; GameDataMgr.GetInstance().Init(); GameDataMgr dataMgr = GameDataMgr.GetInstance(); dataMgr.Init(); foreach (int id in dataMgr.playerInfos.Keys) { Player player = dataMgr.playerInfos[id]; GameObject pfb_player = Resources.Load("player/Basic People") as GameObject; playerMap.Add(id, pfb_player); putObject(pfb_player, (float)player.posX, (float)player.posY, 0, 0, "player_" + id.ToString()); // Debug.Log("player_"+id.ToString()+(float)player.posX+" "+(float)player.posY); } //putObject(pfb_tree,0,0,0,0,"tree"); Debug.Log("Map loaded"); // GameObject player = Resources.Load("player/Female A") as GameObject; // Debug.Log(player); // putObject(player,5,-5,0,5); /* * r1: === r2: | r3: + r4: -| r5: |- r6: | r7: --- * --- | * r8: ==\ r9: || r10: || r11: /== r12: water r13: forest || ==/ \== || */ // string[,] topography = new string[,]{ // {"r11","r1", "r1","r7", "r1", "r1","r8"}, // {"r2", "r12", "r12", "r2", "r13", "r13", "r2"}, // {"r2", " ", "r12", "r2", "r11","r8","r2"}, // {"r2", "r11","r1","r3", "r4", "r5","r4"}, // {"r5", "r9", " ", "r2", "r10","r3", "r4"}, // {"r2", " ", " ", "r2", "r12", "r2", "r2"}, // {"r10","r1", "r1","r6", "r1", "r6","r9"} // }; //string info = ResMgr.GetInstance().Load<TextAsset>("Map/data1").text; //string [] topography; //topography = info.Split('\n'); string[,] objs = new string[, ] { }; string[,] map = dataMgr.loadedMap; row = dataMgr.row; col = dataMgr.col; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { float x = i; float y = j; int passType = 0; switch (map[i, j]) { case "r": if (i - 1 >= 0 && map[i - 1, j] == "r") //上面是路 { if (j - 1 >= 0 && map[i, j - 1] == "r") //左边是路 { if (j + 1 < col && map[i, j + 1] == "r") //右边是路 { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_cross, x, y, 0, 0); } else { putObject(pfb_road_Tcross, x, y, 90, 0); } } else { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_Tcross, x, y, 0, 0); } else { putObject(pfb_road_curve, x, y, 90, 0); } } } else { if (j + 1 < col && map[i, j + 1] == "r") //右边是路 { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_Tcross, x, y, 180, 0); } else { putObject(pfb_road_curve, x, y, 180, 0); } } else { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_straight, x, y, 90, 0); } else { putObject(pfb_road_straight, x, y, 90, 0); } } } } else { if (j - 1 >= 0 && map[i, j - 1] == "r") //左边是路 { if (j + 1 < col && map[i, j + 1] == "r") //右边是路 { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_Tcross, x, y, 270, 0); } else { putObject(pfb_road_straight, x, y, 0, 0); } } else { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_curve, x, y, 0, 0); } else { putObject(pfb_road_straight, x, y, 0, 0); } } } else { if (j + 1 < col && map[i, j + 1] == "r") //右边是路 { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_curve, x, y, 270, 0); } else { putObject(pfb_road_straight, x, y, 0, 0); } } else { if (i + 1 < row && map[i + 1, j] == "r") //下边是路 { putObject(pfb_road_straight, x, y, 90, 0); } else { putObject(pfb_road_straight, x, y, 90, 0); } } } } break; case "g": putObject(pfb_empty, x, y, 0, 0); break; case "t": putObject(pfb_forest, x, y, 0, 0, "forest_" + ((int)x).ToString() + "_" + ((int)y).ToString()); passType = 2; break; case "w": putObject(pfb_water, x, y, 0, 0, "water_" + ((int)x).ToString() + "_" + ((int)y).ToString()); passType = 1; break; case "c": putObject(pfb_mountain, x, y, 0, 0, "mountain_" + ((int)x).ToString() + "_" + ((int)y).ToString()); passType = 1; break; // case "r2": putObject(pfb_road_straight, x, y, 90, 0); break; // case "r3": putObject(pfb_road_cross, x, y, 0, 0); break; // case "r4": putObject(pfb_road_Tcross, x, y, 0, 0); break; // case "r5": putObject(pfb_road_Tcross, x, y, 180, 0); break; // case "r6": putObject(pfb_road_Tcross, x, y, 90, 0); break; // case "r7": putObject(pfb_road_Tcross, x, y, 270, 0); break; // case "r8": putObject(pfb_road_curve, x, y, 0, 0); break; // case "r9": putObject(pfb_road_curve, x, y, 90, 0); break; // case "r10": putObject(pfb_road_curve, x, y, 180, 0); break; // case "r11": putObject(pfb_road_curve, x, y, 270, 0); break; // case "r12": putObject(pfb_water,x,y,0,0); passType = 1; break; // case "r13": putObject(pfb_forest, x, y, 0, 0); passType = 2; break; default: putObject(pfb_empty, x, y, 0, 0); break; } dataMgr.updateMapInfo(i, j, passType); } } int objRow = objs.GetLength(0); int objCol = objs.GetLength(1); // Assert.AreEqual(4, objCol); for (int i = 0; i < objRow; i++) { try{ GameObject pfb = Resources.Load("FreeDimensionForge/LowPolyEnvironmentsPack/Art/ForestEnvironmentPack/Prefabs/" + objs[i, 0]) as GameObject; putObject(pfb, float.Parse(objs[i, 1]) - 0.5f, float.Parse(objs[i, 2]) - 0.5f, int.Parse(objs[i, 3])); } catch { Debug.Log("ERROR: obj " + objs[i, 0] + " does not exist!\n"); } } setBorder(); }
public void UpdatePanelText(int money) { GetControl <Text>("textMoney").text = GameDataMgr.GetInstance().playerInfo.money.ToString(); GetControl <Text>("textGem").text = GameDataMgr.GetInstance().playerInfo.gem.ToString(); }
public void Init(ItemInfo i) { //Debug.Log("the id:"+i.id); //Debug.Log("the icon:"+ GameDataMgr.GetInstance().GetItemInfo(i.id).icon); GetControl <Image>("item").sprite = ResMgr.GetInstance().Load <Sprite>("icon/" + GameDataMgr.GetInstance().GetItemInfo(i.id).icon); GetControl <Text>("itemNum").text = "数量:" + i.nums; item = GameDataMgr.GetInstance().GetItemInfo(i.id); EventTrigger trigger = gameObject.AddComponent <EventTrigger>(); #region PointerEnter //UnityAction<BaseEventData> enter = new UnityAction<BaseEventData>(PointerEnter); //EventTrigger.Entry myenter = new EventTrigger.Entry(); //myenter.eventID = EventTriggerType.PointerEnter; //myenter.callback.AddListener(enter); //trigger.triggers.Add(myenter); #endregion #region PointerExit EventTrigger.Entry myexit = new EventTrigger.Entry(); myexit.eventID = EventTriggerType.PointerExit; myexit.callback.AddListener(PointerExit); trigger.triggers.Add(myexit); #endregion #region NewPointEnter EventTrigger.Entry newEnter = new EventTrigger.Entry(); newEnter.eventID = EventTriggerType.PointerEnter; newEnter.callback.AddListener(PointerEnter); trigger.triggers.Add(newEnter); #endregion }
public void ChangeEquip() { //从装备拖装备 if (nowSelItem.type == E_Item_Type.Bag) { Debug.Log("1111" + nowInItem); if (nowInItem != null && nowInItem.type != E_Item_Type.Bag) //进入了格子,并且不是拖到背包内的格子 { Debug.Log("2222"); //读表 Item info = GameDataMgr.GetInstance().GetItemInfo(nowSelItem.itemInfo.id); //装备交换 //1、判断 格子类型和装备类型是否一致 if (nowInItem.itemInfo == null) { Debug.Log("3333" + " " + nowSelItem.itemInfo.id); //直接装备 直接从背包中移除 更新面板 GameDataMgr.GetInstance().playerInfo.equips.Remove(nowSelItem.itemInfo); GameDataMgr.GetInstance().playerInfo.nowEquips.Add(nowSelItem.itemInfo); List <ItemInfo> nowEquips = GameDataMgr.GetInstance().playerInfo.nowEquips; Debug.Log("现在就看看" + " " + nowEquips[0].id); } else//交换 { Debug.Log("4444"); //直接装备 直接从背包中移除 更新面板 GameDataMgr.GetInstance().playerInfo.nowEquips.Remove(nowInItem.itemInfo); GameDataMgr.GetInstance().playerInfo.nowEquips.Add(nowSelItem.itemInfo); GameDataMgr.GetInstance().playerInfo.equips.Remove(nowSelItem.itemInfo); GameDataMgr.GetInstance().playerInfo.equips.Add(nowInItem.itemInfo); } //更新背包 UIManager.GetInstance().GetPanel <BagPanel>("BagPanel").ChangeType(E_Bag_Type.Equip); //更新人物 UIManager.GetInstance().GetPanel <RolePanel>("RolePanel").UpdateRolePanel(); //保存数据 GameDataMgr.GetInstance().SavePlayerInfo(); } } else//从装备栏往外拖动 { //当前从装备栏往外拖出去一个装备 并且没有进入任何装备 if (nowInItem == null || nowInItem.type != E_Item_Type.Bag) { GameDataMgr.GetInstance().playerInfo.nowEquips.Remove(nowSelItem.itemInfo); GameDataMgr.GetInstance().playerInfo.equips.Add(nowSelItem.itemInfo); //更新背包 UIManager.GetInstance().GetPanel <BagPanel>("BagPanel").ChangeType(E_Bag_Type.Equip); //更新人物 UIManager.GetInstance().GetPanel <RolePanel>("RolePanel").UpdateRolePanel(); //保存数据 GameDataMgr.GetInstance().SavePlayerInfo(); } else if (nowInItem != null && nowInItem.type == E_Item_Type.Bag) { //读表 Item info = GameDataMgr.GetInstance().GetItemInfo(nowSelItem.itemInfo.id); if ((int)nowSelItem.type == info.equipType) { //直接装备 直接从背包中移除 更新面板 GameDataMgr.GetInstance().playerInfo.nowEquips.Remove(nowSelItem.itemInfo); GameDataMgr.GetInstance().playerInfo.nowEquips.Add(nowInItem.itemInfo); GameDataMgr.GetInstance().playerInfo.equips.Remove(nowInItem.itemInfo); GameDataMgr.GetInstance().playerInfo.equips.Add(nowSelItem.itemInfo); //更新背包 UIManager.GetInstance().GetPanel <BagPanel>("BagPanel").ChangeType(E_Bag_Type.Equip); //更新人物 UIManager.GetInstance().GetPanel <RolePanel>("RolePanel").UpdateRolePanel(); //保存数据 GameDataMgr.GetInstance().SavePlayerInfo(); } } } }