TabMenu를 DOTween을 이용해서 Fade in/ Fade out이 연출 되도록 만들어 보았다.
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UITabMenu : MonoBehaviour
{
[SerializeField] private Button[] buttons;
[SerializeField] private TabMenu[] tabMenu;
[SerializeField] private TabFocus[] focus;
void Start()
{
Init();
for (int i = 0; i < buttons.Length; i++)
{
int idx = i;
tabMenu[idx].isOn = false;
buttons[idx].onClick.AddListener(() => {
for (int j = 0; j < tabMenu.Length; j++)
{
int idx2 = j;
//tabMenu[idx2].tabFocus.gameObject.SetActive(false);
//tabMenu[idx2].tabDefault.gameObject.SetActive(true);
focus[idx2].image.DOFade(0, 0.5f);
focus[idx2].text.DOFade(0, 0.5f);
tabMenu[idx2].isOn = false;
}
//tabMenu[idx].tabFocus.gameObject.SetActive(true);
//tabMenu[idx].tabDefault.gameObject.SetActive(false);
focus[idx].image.DOFade(1, 0.5f);
focus[idx].text.DOFade(1, 0.5f);
tabMenu[idx].isOn = true;
});
}
}
private void Init() // 첫번쨰 탭메뉴만 Focus 시작
{
for (int i = 0; i < buttons.Length; i++)
{
focus[i].image.DOFade(0, 0);
focus[i].text.DOFade(0, 0);
tabMenu[i].isOn = false;
}
focus[0].image.DOFade(1, 0);
focus[0].text.DOFade(1, 0);
tabMenu[0].isOn = true;
}
}
2. UITabMenu.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
public class TabMenu : MonoBehaviour
{
public TabFocus tabFocus;
public bool isOn = true;
}
3. TabMenu.cs
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class TabFocus : MonoBehaviour
{
public Image image;
public TMP_Text text;
}
4. TabFocus.cs
반응형
'산대특 > 게임 UIUX프로그래밍' 카테고리의 다른 글
[LearnUGUI] 상자 이미지 변경하기 (0) | 2024.02.08 |
---|---|
[LearnUGUI] 스킬 버튼 만들기 (+쿨타임) (0) | 2024.02.08 |
[LearnGUI] 이름 설정 및 변경과 화면 클릭 시 경험치 획득과 레벨 업 구현 (0) | 2024.02.07 |
[LearnUGUI] 팝업을 통한 이름 변경해보기 (0) | 2024.02.07 |
[LearnUGUI] 로딩바 만들기 (0) | 2024.02.07 |