//캐릭터 슬롯 생성 (초기에 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; }
//각각의 패널 활성화 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; } }