Ejemplo n.º 1
0
    //캐릭터 슬롯 생성 (초기에 4개 생성 이후 부터는 계산을 통한 업데이트)
    public void CreateCharacterSlot(E_PREPAREBATTLE_CHARCTERTYPE _typeIndex, RectTransform listRectTransform)
    {
        //가지고 있는 캐릭터의 개수에 따라 전체 리스트 크기를 설정
        for (int iList = 0; iList < GameManager.Instance.lDbBasicCharacter.Count; iList++)
        {
            //Contents Adjust
            //전체 크기
            listRectTransform.sizeDelta = new Vector2(listRectTransform.sizeDelta.x, listRectTransform.sizeDelta.y + fCSlotY_Value + fPlusSpacing_Value);
        }
        //Contents의 위치
        listRectTransform.anchoredPosition = new Vector2(listRectTransform.anchoredPosition.x, -(listRectTransform.sizeDelta.y / 2));

        //50개일때 7개
        //해당 타입에 따라 캐릭터 슬롯을 만든다
        //전체 캐릭에 따라 개수를 다르게 생성 하도록 한다
        for (int i = 0; i < 7; i++)
        {
            GameObject cSlot_Obj = characterSlotPool.GetObject();

            cSlot_Obj.name = "CharacterSlot" + i.ToString();
            CharacterSlot cSlot = cSlot_Obj.GetComponent <CharacterSlot> ();
            cSlot.cSlotRect = cSlot_Obj.GetComponent <RectTransform> ();


            //CharacterSlot Init
            cSlot.characterBox_Image.sprite = GameManager.Instance.CharacterBoxImage_List [i];
            cSlot.mDispatchPanel            = mDispatchPanel;
            cSlot.characterHealth_Text.text = GameManager.Instance.GetPlayer().LIST_CHARACTER [i].Health.ToString();
            cSlot.characterLevel_Text.text  = GameManager.Instance.GetPlayer().LIST_CHARACTER [i].Levels.ToString();
            cSlot.characterName_Text.text   = GameManager.Instance.GetPlayer().LIST_CHARACTER [i].C_JobNames;
            cSlot.characterInfo             = GameManager.Instance.GetPlayer().LIST_CHARACTER [i];
            cSlot.cInfoPanel = this;

            //전체 크기
            //listRectTransform.sizeDelta = new Vector2 (listRectTransform.sizeDelta.x, listRectTransform.sizeDelta.y + fCSlotY_Value + fPlusSpacing_Value);
            //Contents의 위치
            //listRectTransform.anchoredPosition = new Vector2 (listRectTransform.anchoredPosition.x, -(listRectTransform.sizeDelta.y / 2));


            //CharacterSlot 추가
            cSlot_Obj.transform.SetParent(togglePanel [(int)_typeIndex].transform.GetChild(1)
                                          .transform.GetChild(0), false);
            RectTransform cSlotObj_Rect = cSlot_Obj.GetComponent <RectTransform> ();

            //캐릭터 각각의 슬롯 위치(Vertical layout  없을 때)

            if (i == 0)
            {
                cSlotObj_Rect.anchoredPosition = new Vector2(0f, (fCSlotY_Pos * (i + 1)) - 10f);
            }
            else
            {
                RectTransform nextElementTrans = listRectTransform.transform.GetChild(i - 1).gameObject.GetComponent <RectTransform> ();
                cSlotObj_Rect.anchoredPosition = new Vector2(0f, ((nextElementTrans.anchoredPosition.y + (fCSlotY_Pos * 2)) - 10f));
            }
        }
        childTotalCount = 7;
    }
Ejemplo n.º 2
0
    //각각의 패널 활성화
    public override void ActivePanel <T> (T _chapterIndex)
    {
        //중복 호출 방지
        if (nToggleCount == 1)
        {
            nToggleCount = 0;
            return;
        }


        var eType = Enum.Parse(typeof(ReadOnlys.E_PREPAREBATTLE_CHARCTERTYPE), _chapterIndex.ToString());

        nToggleCount++;


        switch ((E_PREPAREBATTLE_CHARCTERTYPE)eType)
        {
        case E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL:

            curCharacterType = E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL;

            Debug.Log("Active CharacterTotal Panel!!");
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL].SetActive(true);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_COMMANDER].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_MELEE].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_RANGE].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_FAVORITE].SetActive(false);

            //캐릭터 슬롯 생성
            if (isFirstInitCharacterSlot [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL] == false)
            {
                RectTransform listRectTransform_Total = togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL].transform.GetChild(1)
                                                        .transform.GetChild(0).GetComponent <RectTransform> ();

                CreateCharacterSlot(E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL, listRectTransform_Total);
                isFirstInitCharacterSlot [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL] = true;
                //스크롤 되는 패널
                rectTransformList_Panel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL] = listRectTransform_Total;
                //스크롤에 달려있는 스크롤 렉트
                scrollRect_List [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL] = listRectTransform_Total.gameObject.GetComponentInParent <ScrollRect> ();
            }

            break;

        case E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_COMMANDER:

            curCharacterType = E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_COMMANDER;

            Debug.Log("Active Commander Panel!!");
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_COMMANDER].SetActive(true);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_MELEE].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_RANGE].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_FAVORITE].SetActive(false);


            //캐릭터 슬롯 생성
            if (isFirstInitCharacterSlot [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_COMMANDER] == false)
            {
                RectTransform listRectTransform_Commander = togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_COMMANDER].transform.GetChild(1)
                                                            .transform.GetChild(0).GetComponent <RectTransform> ();

                CreateCharacterSlot(E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_COMMANDER, listRectTransform_Commander);
                isFirstInitCharacterSlot[(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_COMMANDER] = true;

                rectTransformList_Panel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_COMMANDER] = listRectTransform_Commander;
            }

            break;

        case E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_MELEE:

            curCharacterType = E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_MELEE;

            Debug.Log("Active CharacterMelee Panel!!");
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_COMMANDER].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_MELEE].SetActive(true);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_RANGE].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_FAVORITE].SetActive(false);



            //캐릭터 슬롯 생성
            if (isFirstInitCharacterSlot [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_MELEE] == false)
            {
                RectTransform listRectTransform_MELEE = togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_MELEE].transform.GetChild(1)
                                                        .transform.GetChild(0).GetComponent <RectTransform> ();

                CreateCharacterSlot(E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_MELEE, listRectTransform_MELEE);
                isFirstInitCharacterSlot[(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_MELEE] = true;

                rectTransformList_Panel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_MELEE] = listRectTransform_MELEE;
            }

            break;

        case E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_RANGE:

            curCharacterType = E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_RANGE;

            Debug.Log("Active CharacterRange Panel!!");
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_COMMANDER].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_MELEE].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_RANGE].SetActive(true);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_FAVORITE].SetActive(false);


            //캐릭터 슬롯 생성
            if (isFirstInitCharacterSlot [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_RANGE] == false)
            {
                RectTransform listRectTransform_Range = togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_RANGE].transform.GetChild(1)
                                                        .transform.GetChild(0).GetComponent <RectTransform> ();

                CreateCharacterSlot(E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_RANGE, listRectTransform_Range);
                isFirstInitCharacterSlot[(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_RANGE] = true;

                rectTransformList_Panel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_RANGE] = listRectTransform_Range;
            }

            break;

        case E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_FAVORITE:

            curCharacterType = E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_FAVORITE;

            Debug.Log("Active CharacterFavorite Panel!!");
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_TOTAL].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_COMMANDER].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_MELEE].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_RANGE].SetActive(false);
            togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_FAVORITE].SetActive(true);


            //캐릭터 슬롯 생성
            if (isFirstInitCharacterSlot [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_FAVORITE] == false)
            {
                RectTransform listRectTransform_Favorite = togglePanel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_FAVORITE].transform.GetChild(1)
                                                           .transform.GetChild(0).GetComponent <RectTransform> ();

                CreateCharacterSlot(E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_FAVORITE, listRectTransform_Favorite);
                isFirstInitCharacterSlot[(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_FAVORITE] = true;

                rectTransformList_Panel [(int)E_PREPAREBATTLE_CHARCTERTYPE.E_PREPAREBATTLE_CHARCTERTYPE_FAVORITE] = listRectTransform_Favorite;
            }

            break;

        default:
            break;
        }
    }