void OnUnEquip(GameObject Slot)
    {
        int powerchange = int.Parse(txtScore.text);

        // 装备放入背包
        UIMemberEquipSlot slot = Slot.GetComponent <UIMemberEquipSlot>();

        if (slot.item != null)
        {
            GameData.AddItemToBag(slot.item, 1);
            powerchange -= slot.item.Power;
        }

        if (_nCurSlotSelTag < _npcdata.lstEquipments.Count)
        {
            GameData.lstNpcs[GameData.nCurNpcTag].lstEquipments[_nCurSlotSelTag] = null;
        }
        else
        {
            int j = _nCurSlotSelTag - GameData.lstNpcs[GameData.nCurNpcTag].lstEquipments.Count;
            GameData.lstNpcs[GameData.nCurNpcTag].lstCards[j] = null;
        }

        // npc装备改为null
        GameData.lstNpcs[GameData.nCurNpcTag].lstEquipments[_nCurSlotSelTag] = null;

        txtScore.text = powerchange.ToString();

        Slot.GetComponent <UIMemberEquipSlot>().imgIcon.sprite = null;
        Slot.GetComponent <UIMemberEquipSlot>().imgIcon.gameObject.SetActive(false);
        Slot.GetComponent <UIMemberEquipSlot>().imgIconIfNull.gameObject.SetActive(true);

        OnCloseBag();
    }
    void OnOpenBag(GameObject objSelectedSlot)
    {
        if (objSelectedSlot.GetComponent <UIMemberEquipSlot>().nSlotTag == _nCurSlotSelTag)
        {
            OnCloseBag();
            return;
        }
        else
        {
            _nCurSlotSelTag = objSelectedSlot.GetComponent <UIMemberEquipSlot> ().nSlotTag;
        }

        //         // 如果点击了同一个slot,则关闭
        //         if()
        //         {
        //
        //         }
        //         // 如果点击了不同的slot,打开换装信息
        //         else
        //         {
        //         }


        UIMemberEquipSlot slotinfo = objSelectedSlot.GetComponent <UIMemberEquipSlot>();

        if (slotinfo.item == null)
        {
            Debug.Log("?");
            objEquipmentDesc.SetActive(false);
            btClose.gameObject.SetActive(false);
            btUnEquip.gameObject.SetActive(false);
        }
        else
        {
            Debug.Log("!");
            objEquipmentDesc.SetActive(true);
            btClose.gameObject.SetActive(true);
            btUnEquip.gameObject.SetActive(true);
            objEquipmentDesc.GetComponent <UISlotItemInfo>().UpdateItemInfo(slotinfo.item);
        }

        Debug.Log("itemtype = " + slotinfo.nslottype);


        objEquipmentBag.SetActive(true);
        objEquipmentBag.GetComponent <BubbleBag>().GenerateItemsInBag(slotinfo.nslottype);

        // 可装备格子监听
        Transform Itemroot = objEquipmentBag.GetComponent <BubbleBag> ().trsSlotItemRoot;

        for (int i = 0; i < Itemroot.childCount; i++)
        {
            var obj = Itemroot.GetChild(i).gameObject as GameObject;

            obj.AddMissingComponent <Button> ().onClick.AddListener(() => { OnSwitchItem(objSelectedSlot, obj.name); });
        }

        // 卸装备监听
        btUnEquip.onClick.AddListener(() => { OnUnEquip(objSelectedSlot); });
    }
    void OnSwitchItem(GameObject Slot, string ItemId)
    {
        int powerchange = int.Parse(txtScore.text);

        // 装备放入背包
        UIMemberEquipSlot slot = Slot.GetComponent <UIMemberEquipSlot>();

        if (slot.item != null)
        {
            GameData.AddItemToBag(slot.item, 1);
            powerchange -= slot.item.Power;
        }

        //  穿装备
        for (int i = 0; i < GameData.lstBagItems.Count; i++)
        {
            if (GameData.lstBagItems[i].ID == ItemId)
            {
                Debug.Log(ItemId);
                slot.item = GameData.lstBagItems [i];

                if (GameData.lstBagItems [i].Category == ItemType.Equipment)
                {
                    GameData.lstNpcs [GameData.nCurNpcTag].lstEquipments[_nCurSlotSelTag] = GameData.lstBagItems [i];
                }
                else
                {
                    int j = _nCurSlotSelTag - GameData.lstNpcs [GameData.nCurNpcTag].lstEquipments.Count;
                    GameData.lstNpcs [GameData.nCurNpcTag].lstCards [j] = GameData.lstBagItems [i];
                }


                Slot.GetComponent <UIMemberEquipSlot> ().imgIcon.sprite = slot.item.IconSprite;
                Slot.GetComponent <UIMemberEquipSlot> ().imgIcon.gameObject.SetActive(true);
                Slot.GetComponent <UIMemberEquipSlot> ().imgIconIfNull.gameObject.SetActive(false);

                powerchange += slot.item.Power;

                GameData.DelItemFromBag(slot.item, 1);

                txtScore.text = powerchange.ToString();


                Debug.Log("Npc " + GameData.nCurNpcTag + " Slot = " + _nCurSlotSelTag + " : " + GameData.lstNpcs [GameData.nCurNpcTag].lstEquipments [_nCurSlotSelTag].ID);


                OnCloseBag();
                return;
            }
        }
    }
    // 生成界面
    void GenerateNpcInfo()
    {
        Debug.Log("GenerateSlotList");

        txtNpcName.text = GameData.lstNpcs [GameData.nCurNpcTag].Name;
        int power = DataCenter.Instance.dictNPCData[GameData.lstNpcs [GameData.nCurNpcTag].ID].Power;

        Debug.Log("NpcId : " + _npcdata.ID);

        // 装备
        for (int i = 0; i < _npcdata.lstEquipments.Count; i++)
        {
            var obj = trsSlotItemRoot.GetChild(i).gameObject as GameObject;
            UIMemberEquipSlot slot = obj.GetComponent <UIMemberEquipSlot>();

            slot.item     = _npcdata.lstEquipments[i];
            slot.nSlotTag = i;

            Debug.Log(i);

            slot.nslottype = DataCenter.Instance.dictNPCData[_npcdata.ID].EquipType[i];

            if (_npcdata.lstEquipments[i] == null)
            {
                Debug.Log("?");
                slot.imgIconIfNull.gameObject.SetActive(true);
                slot.imgIcon.gameObject.SetActive(false);
            }
            else
            {
                Debug.Log("!");
                slot.imgIconIfNull.gameObject.SetActive(false);
                slot.imgIcon.gameObject.SetActive(true);

                Debug.Log("Npc " + i + " Equip : " + slot.item.ID);

                power += slot.item.Power;
            }


            obj.GetComponent <Button>().onClick.AddListener(() => { OnOpenBag(obj); });
        }

        // 卡片
        for (int i = _npcdata.lstEquipments.Count; i < _npcdata.lstEquipments.Count + _npcdata.lstCards.Count; i++)
        {
            var obj = trsSlotItemRoot.GetChild(i).gameObject as GameObject;
            UIMemberEquipSlot slot = obj.GetComponent <UIMemberEquipSlot>();

            slot.item     = _npcdata.lstCards[i - _npcdata.lstEquipments.Count];
            slot.nSlotTag = i;

            // TODO::非常临时的写法
            slot.nslottype = 400;

            if (_npcdata.lstCards[i - _npcdata.lstEquipments.Count] == null)
            {
                slot.imgIconIfNull.gameObject.SetActive(true);
                slot.imgIcon.gameObject.SetActive(false);
            }
            else
            {
                slot.imgIconIfNull.gameObject.SetActive(false);
                slot.imgIcon.gameObject.SetActive(true);
            }


            obj.GetComponent <Button>().onClick.AddListener(() => { OnOpenBag(obj); });
        }


        // 技能、喜好、性格
        GenerateSlotNature(trsNpcSkillRoot, objSkillSlot, _npcdata.SkillId);
        GenerateSlotNature(trsNpcPreferRoot, objPreferSlot, _npcdata.Favor);
        GenerateSlotNature(trsNpcTraitRoot, objTraitSlot, _npcdata.Character);

        // 战斗力
        txtScore.text = power.ToString();
    }