1. 실행 이미지

 

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

 

반응형

+ Recent posts