List <NetData._PartnerData> GetSortPartnerList()
    {
        List <NetData._PartnerData> parList  = CharInven.GetPartnerList();
        List <NetData._PartnerData> tempList = null;

        PartnerClassType type = (PartnerClassType)CurPartnerTabArr;

        if (type != PartnerClassType.None)
        {
            tempList = new List <NetData._PartnerData>();
            for (int i = 0; i < parList.Count; i++)
            {
                Partner.PartnerDataInfo info = parList[i].GetLowData();
                if ((PartnerClassType)info.Class != type)
                {
                    continue;
                }

                tempList.Add(parList[i]);
            }

            OwnPartnerView.CurTabPartnerList = tempList;
            //return tempList;
        }
        else
        {
            OwnPartnerView.CurTabPartnerList = parList;
            //return parList;
        }

        //Debug.Log("소팅전");
        //for(int i=0;i< OwnPartnerView.CurTabPartnerList.Count;i++)
        //{
        //    Debug.Log(string.Format("idx : {0} isOwn :{1} nedd {2} nox {3}", OwnPartnerView.CurTabPartnerList[i]._partnerDataIndex,
        //        OwnPartnerView.CurTabPartnerList[i]._isOwn, OwnPartnerView.CurTabPartnerList[i]._needShard, OwnPartnerView.CurTabPartnerList[i].NowShard));
        //}

        OwnPartnerView.CurTabPartnerList.Sort(SortPartnerList);

        //Debug.Log("소팅후");
        //for (int i = 0; i < OwnPartnerView.CurTabPartnerList.Count; i++)
        //{
        //    Debug.Log(string.Format("idx : {0} isOwn :{1} nedd {2} nox {3}", OwnPartnerView.CurTabPartnerList[i]._partnerDataIndex,
        //        OwnPartnerView.CurTabPartnerList[i]._isOwn, OwnPartnerView.CurTabPartnerList[i]._needShard, OwnPartnerView.CurTabPartnerList[i].NowShard));
        //}

        return(OwnPartnerView.CurTabPartnerList);
    }
    /// <summary>
    /// Partner를 셋팅 및 보여준다.
    /// </summary>
    /// <param name="type">PartnerType으로 타입에 맞게 보여줌</param>
    int OnTabPartnerList(int typeIdx)
    {
        PartnerClassType type = (PartnerClassType)typeIdx;
        int gridSlotCount     = 0;

        bool isTuto = SceneManager.instance.CurTutorial == TutorialType.PARTNER;
        List <NetData._PartnerData> dataList = CharInven.GetPartnerList();
        int loopCount = dataList.Count;

        for (int i = 0; i < loopCount; i++)
        {
            ListGridTf.GetChild(i).gameObject.SetActive(false);

            NetData._PartnerData    data = dataList[i];
            Partner.PartnerDataInfo info = data.GetLowData();
            if (type != PartnerClassType.None && (PartnerClassType)info.Class != type)
            {
                continue;
            }

            Transform slotTf = ListGridTf.GetChild(gridSlotCount);
            slotTf.gameObject.SetActive(true);


            slotTf.FindChild("Mark").GetComponent <UISprite>().spriteName = data.GetClassType();
            //보유조각수
            slotTf.FindChild("Txt_count").GetComponent <UILabel>().text = string.Format(_LowDataMgr.instance.GetStringCommon(1154), data.NowShard, data._needShard);


            UISprite face = slotTf.FindChild("Itemroot/face").GetComponent <UISprite>();
            UISprite bg   = slotTf.FindChild("Itemroot/gradebg").GetComponent <UISprite>();
            face.spriteName = data.GetIcon();
            slotTf.FindChild("Txt_name").GetComponent <UILabel>().text = data.GetLocName();

            UILabel level = slotTf.FindChild("Txt_class").GetComponent <UILabel>();

            //등급은 색상도 고려해줘..
            UILabel gradeLabel = slotTf.FindChild("Txt_type").GetComponent <UILabel>();

            slotTf.FindChild("Itemroot/grade").GetComponent <UISprite>().spriteName = string.Format("Icon_0{0}", data.CurQuality);
            bg.spriteName = string.Format("Icon_bg_0{0}", data.CurQuality);

            Transform  btnGetTf    = slotTf.FindChild("Btn_Get");                 //소환버튼
            GameObject btnGetAfter = slotTf.FindChild("Btn_Getafter").gameObject; //보유중일때나옴
            btnGetAfter.SetActive(data._isOwn);
            btnGetTf.gameObject.SetActive(!data._isOwn);
            slotTf.FindChild("bg_on").gameObject.SetActive(data._isOwn);//배경

            if (data._isOwn)
            {
                EventDelegate.Set(btnGetAfter.GetComponent <UIEventTrigger>().onClick, delegate() {
                    UIMgr.instance.AddPopup(141, 1177, 117);    //보유중알림메시지
                });

                if (data._NowLevel >= data._MaxLevel)//최대렙
                {
                    level.text = string.Format(_LowDataMgr.instance.GetStringCommon(1152), data._NowLevel);
                }
                else
                {
                    level.text = string.Format(_LowDataMgr.instance.GetStringCommon(1151), data._NowLevel);
                }

                //색상도고려
                gradeLabel.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor((int)data.CurQuality), data.GetGradeName());
            }
            else
            {
                if (isTuto && type == PartnerClassType.Attack && data.NowShard >= data._needShard)
                {
                    isTuto = false;
                    TutorialSupport support = btnGetTf.gameObject.AddComponent <TutorialSupport>();
                    support.TutoType = TutorialType.PARTNER;
                    support.SortId   = 3;
                    support.IsScroll = true;

                    //support.NextTuto = OwnPartnerView.TabBtn[1].gameObject.GetComponent<TutorialSupport>();
                    support.OnTutoSupportStart();
                }

                btnGetTf.FindChild("Btn_on").gameObject.SetActive(data.NowShard >= data._needShard);
                btnGetTf.FindChild("Btn_off").gameObject.SetActive(data.NowShard < data._needShard);

                level.text      = "";
                gradeLabel.text = _LowDataMgr.instance.GetStringCommon(1155);                                                                   //없으면 미보유
                EventDelegate.Set(btnGetTf.GetComponent <UIEventTrigger>().onClick, delegate() { OnClickPartnerGet(data._partnerDataIndex); }); //소환
            }

            //슬롯 클릭시 실행할 함수 셋팅
            EventDelegate.Set(slotTf.GetComponent <UIEventTrigger>().onClick, delegate() {
                OnClickListSlot(data._partnerDataIndex);
            });

            ++gridSlotCount;
        }

        ListGridTf.GetComponent <UIGrid>().repositionNow = true;

        return(gridSlotCount);
    }