void InitSocket()
    {
        Transform socketTf = GetViewObj(CurViewType).transform;

        NetData._CostumeData    costumeData = UserInfo.GetEquipCostume();
        NetData.ItemAbilityData ability     = costumeData.AbilityData;

        float abilityValue = _LowDataMgr.instance.GetCostumeAbilityValue(costumeData._Grade, costumeData._MinorGrade, ability.Value);

        TargetCostume[1].gameObject.SetActive(true);
        TargetCostume[1].FindChild("icon").GetComponent <UISprite>().spriteName = costumeData.GetIconName();
        TargetCostume[1].FindChild("name").GetComponent <UILabel>().text        = costumeData.GetLocName();
        TargetCostume[1].FindChild("info").GetComponent <UILabel>().text        = costumeData.GetDescription();
        TargetCostume[1].FindChild("ability").GetComponent <UILabel>().text     = string.Format("{0} {1}", UIMgr.instance.GetAbilityLocName(ability.Ability)
                                                                                                , UIMgr.instance.GetAbilityStrValue(ability.Ability, abilityValue));   //지금 능력치

        //if(DetailPopup == null)
        //    DetailPopup = UIMgr.OpenDetailPopup(this);

        //코스튬에 보석 공간 확인
        for (ushort i = 0; i < SystemDefine.MaxJewelCount; i++)
        {
            string         itemName    = null;
            string         itemAbility = null;
            string         itemDesc    = null;
            UIEventTrigger uiTri       = SocketRootTfs[i].GetComponent <UIEventTrigger>();

            uint jewelLowDataId = costumeData._EquipJewelLowId[i];
            if (0 < jewelLowDataId)
            {
                Item.ItemInfo useLowData = _LowDataMgr.instance.GetUseItem(jewelLowDataId);
                //Item.ItemValueInfo valueLowData = _LowDataMgr.instance.GetLowDataItemValueInfo(useLowData.OptionIndex1);
                //LockImg.SetActive(false);

                itemDesc = _LowDataMgr.instance.GetStringItem(useLowData.DescriptionId);
                JewelInvenSlots[i].SetLowDataItemSlot(jewelLowDataId, 0, null);
                itemName    = _LowDataMgr.instance.GetStringItem(useLowData.NameId);
                itemAbility = string.Format("{0} {1}", UIMgr.instance.GetAbilityLocName((AbilityType)useLowData.OptionType),
                                            UIMgr.instance.GetAbilityStrValue((AbilityType)useLowData.OptionType, useLowData.value * 0.1f));
            }
            else//그런거 없음 빈 슬롯.
            {
                JewelInvenSlots[i].EmptySlot();
                //LockImg.SetActive(true);
            }
            UILabel nameLbl    = SocketRootTfs[i].FindChild("item_name").GetComponent <UILabel>();
            UILabel abilityLbl = SocketRootTfs[i].FindChild("ability").GetComponent <UILabel>();
            UILabel descLbl    = SocketRootTfs[i].FindChild("desc").GetComponent <UILabel>();

            //승급에따라 슬롯수가 결정됨, 보석슬롯 락처리
            int        maxJewelSlot = costumeData.MaxJewelSlot;
            GameObject LockImg      = SocketRootTfs[i].FindChild("Lock").gameObject; // 락이미지
            LockImg.SetActive(maxJewelSlot <= i);



            nameLbl.text    = itemName;
            abilityLbl.text = itemAbility;
            descLbl.text    = itemDesc;
        }

        if (JewelGrid.transform.childCount <= 0)//처음으로 클릭함. 슬롯 생성 및 갱신해준다.
        {
            int maxInvenSlot = _LowDataMgr.instance.GetEtcTableValue <int>(EtcID.InvenMax);
            List <NetData._ItemData> jewelList = UserInfo.GetTypeItemList(eItemType.USE, AssetType.Jewel);
            jewelList.Sort(SortJewel);
            for (int i = 0; i < maxInvenSlot; i++)
            {
                GameObject slotGo = Instantiate(InvenSlotPrefab) as GameObject;
                Transform  slotTf = slotGo.transform;
                slotTf.parent        = JewelGrid.transform;
                slotTf.localPosition = Vector3.zero;
                slotTf.localScale    = Vector3.one;

                InvenItemSlotObject invenSlot = slotGo.GetComponent <InvenItemSlotObject>();
                if (i < jewelList.Count)
                {
                    invenSlot.SetInvenItemSlot(jewelList[i], OnClickInvenItemSlot);
                    //SocketRootTfs[i].FindChild("Lock").gameObject.SetActive(false);
                }
                else
                {
                    invenSlot.EmptySlot();
                }
            }

            JewelScrollView.ResetPosition();
        }

        //선택되어 있는 소켓 기본 0번으로 셋팅
        SelectJewelArr = 0;
        if (costumeData.MaxJewelSlot > 0)
        {
            for (int i = 0; i < SocketRootTfs.Length; i++)
            {
                GameObject select = SocketRootTfs[i].transform.FindChild("cover").gameObject;
                select.SetActive(i == SelectJewelArr);
            }
        }
    }