원하는 것: 버튼 누르면 위로 촤라락 펼쳐지게 하기.
방법
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. 확인하기
'Unity' 카테고리의 다른 글
[ Unity ] 에셋스토어 SimpleSQL 테이블 확인 및 수정하기 (0) | 2024.02.21 |
---|---|
[ Unity ] Rect Transform에서 position NaN문제 (0) | 2024.02.06 |
[ Unity ] 유니티 c# 깊은 복사하기 (0) | 2024.01.15 |
[ Unity ] 유니티에서 vscode 안열림 반응없음 (0) | 2023.12.20 |
[ Unity ] 유니티 mac에서 preferences 안보임 (0) | 2023.12.20 |