


6개의 UIGoldCell Prefab 중, 하나의 Btn Price에 연결이 되어있지 않았다.


+++

해당 Tap_Menu의 버튼 타입들을 Enum으로 정의해주고,
해당 메뉴(텍스트)를 클릭시 현재 타입(Type)에 따라서 ScrollView를 변경해보고자 한다.
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class TabMenuController : MonoBehaviour
{
public GameObject chestScrollView;
public GameObject goldScrollView;
private Color selectedColor = new Color(246f / 255f, 225f / 255f, 156f / 255f);
private Color defaultColor = Color.white;
public enum TabType
{
ChestPacks = 0,
GoldPacks = 1
}
private void Start()
{
// 모든 Tap_Text의 LineFocus를 비활성화
foreach (Transform child in transform)
{
var lineFocus = child.Find("LineFocus");
if (lineFocus != null)
{
lineFocus.gameObject.SetActive(false);
}
}
int index = 0;
foreach (Transform child in transform)
{
var text = child.GetComponent<TMP_Text>();
if (text != null)
{
text.color = defaultColor;
TabType tabType = (TabType)index;
Button button = child.gameObject.AddComponent<Button>(); // 버튼 컴포넌트 추가
button.onClick.AddListener(() => OnTabSelected(tabType));
}
index++;
}
// 초기 상태 설정 (ChestPacks가 선택된 상태)
OnTabSelected(TabType.GoldPacks);
}
public void OnTabSelected(TabType selectedTab)
{
foreach (Transform child in transform)
{
var text = child.GetComponent<TMP_Text>();
var lineFocus = child.Find("LineFocus");
TabType tabType = (TabType)child.GetSiblingIndex();
if (tabType == selectedTab)
{
text.color = selectedColor;
lineFocus.gameObject.SetActive(true);
}
else
{
text.color = defaultColor;
lineFocus.gameObject.SetActive(false);
}
}
// ScrollView 활성화/비활성화 처리
switch (selectedTab)
{
case TabType.ChestPacks:
chestScrollView.SetActive(true);
goldScrollView.SetActive(false);
break;
case TabType.GoldPacks:
chestScrollView.SetActive(false);
goldScrollView.SetActive(true);
break;
}
}
}
7. TabMenuController 스크립트 작성




다음 포스팅 예정 목록:
1. Gem Packs의 스크롤 뷰 구현
2. 현재 소지한 Gem, Gold의 수치를 데이터 연동을 통한 불러오기/저장
3. Chest/Gold/Gem Cell들의 Price 버튼을 통해 현재 소지한 Gem,Gold의 수치를 + 또는 - 로 변경 및 저장(User Data)
반응형
'KDT > 유니티 심화' 카테고리의 다른 글
LearnUGUI (미션 창 만들기) - 1 (0) | 2023.09.14 |
---|---|
LearnUGUI (Gold Packs - 데이터 테이블 만들고 연동하기) - 3 (完) (0) | 2023.09.13 |
LearnUGUI (Gold Packs - 데이터 테이블 만들고 연동하기) - 1 (0) | 2023.09.11 |
LearnUGUI연습 (8. ShopChest 데이터 연동 하기) (0) | 2023.09.10 |
LearnUGUI 연습 (7. ShopChest 정적 스크롤뷰 관리 하는 스크립트 만들기) (0) | 2023.09.10 |