유니티 UI 롱 버튼 구현Unity/UI2024. 2. 6. 14:36
Table of Contents
구현 소개
방치형 게임 특성상 재화를 많이 버는 만큼 여러 스탯을 강화하는데 그 강화 횟수는 방대한 편이다.
이걸 일일이 버튼을 누르면서 강화하면 유저들의 불편함이 생김, 이를 해소하고자 롱 버튼 기능을 구현해야 한다.
기능 구현
롱 버튼 제어
private void OnPointerDown(PointerEventData eventData)
{
isPointerDown = true;
pressTime = DateTime.Now;
StartCoroutine(HoldPressListener());
}
private void OnPointerUp(PointerEventData eventData)
{
isPointerDown = false;
isHoldPressed = false;
upgradeDelay = 0.05f;
}
- 인터페이스 OnPointerUp, OnPointerDown을 이용해 롱버튼 제어
코루틴 롱 버튼 리스너
private IEnumerator HoldPressListener()
{
while (isPointerDown)
{
double elapsedSeconds = (DateTime.Now - pressTime).TotalSeconds;
if (elapsedSeconds >= 0.25f && !isHoldPressed)
{
isHoldPressed = true;
}
else if (elapsedSeconds >= 2.5f && isHoldPressed)
{
upgradeDelay = 0.01f;
yield break;
}
yield return new WaitForSeconds(0.1f);
}
}
- 버튼을 누른 후, 딜레이를 계산하여 롱 버튼 구현, 롱 버튼 지속 후에 몇 초간 더 누르고 있으면 강화 속도가 빨라짐
'Unity > UI' 카테고리의 다른 글
유니티 UI Binding을 활용한 백 버튼 구현 (0) | 2024.03.01 |
---|---|
유니티 노치 디자인 & 펀치홀 디스플레이 대응 (0) | 2024.03.01 |
유니티 로그라이크 미니맵 구현 (0) | 2023.12.20 |
유니티 UI 참석 인원 표시 (0) | 2023.11.27 |
유니티 UI 캐릭터 정보 변경 (0) | 2023.11.27 |