Unity

[ Unity ] 버튼 펼침 목록 LeanTween

거두절me 2024. 2. 6. 01:47

원하는 것: 버튼 누르면 위로 촤라락 펼쳐지게 하기.

방법
1. 유니티 AssetStore에서 LeanTween 다운 받고 import하기.
2. 소스짜기.

using UnityEngine;  
using UnityEngine.UI;

public class SpreadObj : MonoBehaviour  
{  
    public GameObject mainButton;  
    public GameObject[] subButtons;  
    private bool areSubButtonsVisible = false;

    public void ToggleSubButtons()
    {
        areSubButtonsVisible = !areSubButtonsVisible;

        if (areSubButtonsVisible)
        {
            // 서브 버튼을 보이게 하고 슬라이딩 효과로 배치
            SetSubButtonsActive(true);
            SlideSubButtons(); // 최종 위치 설정
        }
        else
        {
            SlideSubButtons(true);
            // 서브 버튼을 숨기고 초기 위치로 순서대로 빨려들어가는 효과
        }
    }

    void SetSubButtonsActive(bool isActive)
    {
        foreach (GameObject subButton in subButtons)
        {
            subButton.SetActive(isActive);
        }
    }

    void SlideSubButtons(bool isReverse = false)
    {
        for (int i = 0; i < subButtons.Length; i++)
        {
            RectTransform rectTransform = subButtons[i].GetComponent<RectTransform>();

            float mainBtnPosY = mainButton.GetComponent<RectTransform>().anchoredPosition.y;

            if (isReverse)
            {
                LeanTween.moveLocalY(rectTransform.gameObject, mainBtnPosY, 0.3f)
                    .setEase(LeanTweenType.easeInBack);
            }
            else
            {
                float targetPosition = mainBtnPosY+((i+1)*150);
                LeanTween.moveLocalY(rectTransform.gameObject, targetPosition, 0.3f)
                    .setEase(LeanTweenType.easeOutBack)
                    .setDelay(0.1f * i);
            }
        }
    }
}

3. mainButton에 트리거 버튼 넣기, subButtons에 펼쳐질 버튼들 넣기.
4. 확인하기

펼침 <-> 모으기