게임 엔진/유니티
[유니티] 버튼 클릭에 누른 상태도 적용하기
코딩너구리
2025. 3. 6. 14:41
클릭 시 기능을 가능하게 하는 건 Button.OnClick() 내장 함수를 통해 바로 구현이 가능하다.
다만 클릭 뿐만 아니라 꾹 눌러도 버튼이 게속 눌리게 하고 싶다면, 추가적인 코드를 작성 해야한다.
using UnityEngine;
using UnityEngine.EventSystems;
public class UpgradeButton : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
public WeaponUpgrade WeaponUpgrade;
private bool isPressed = false;
public void OnPointerDown(PointerEventData eventData)
{
isPressed = true;
InvokeRepeating("Execute", 0f, 0.1f);
}
public void OnPointerUp(PointerEventData eventData)
{
isPressed = false;
CancelInvoke("Execute");
}
private void Execute()
{
if (isPressed)
{
WeaponUpgrade.Upgrade();
}
}
}
인터페이스 IPointerDownHandler, IPointerUpHandler 를 추가한다.
OnPointerDown()는 클릭을 하면 작동하고, OnPointerUp()은 클릭을 뗀다면 작동한다.
bool 을 통해 클릭 여부를 체크하고, 해당 시간동안 반복적으로 함수를 호출하도록 하면 된다.