본문 바로가기
개발/Unity

유니티 - 롱 클릭 구현하기 (Unity Long Click)

by 피로물든딸기 2022. 3. 15.
반응형

Unity 전체 링크

참고

- 롱 클릭 progress bar 처리하기

 

유니티에서는 더블 클릭처럼 롱 클릭을 직접 구현해야 한다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LongClickTest : MonoBehaviour
{
    private float elapsedTime = 0.0f;
    private float longClickTime = 2.0f;
    private bool isClicked = false;

    public void OnMouseDown()
    {
        isClicked = true;
    }

    public void OnMouseUp()
    {
        isClicked = false;

        if(longClickTime < elapsedTime) Debug.Log("long click");
    }

    void Update()
    {
        if (isClicked) elapsedTime += Time.deltaTime;
        else elapsedTime = 0.0f;
    }
}


하지만 위의 경우는 MouseUp 이벤트가 발생했을 때가 되어야 long click을 판단하게 된다.
따라서, Update에서 long click을 판단하는 bool 변수를 두고, 경과 시간이 지나면 특정 동작을 하도록 한다.
(오래 누르고 난 후의 오브젝트를 움직일 수 있다던가 등의 행동)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LongClickTest : MonoBehaviour
{
    private float elapsedTime = 0.0f;
    private float longClickTime = 2.0f;
    private bool isClicked = false;
    private bool isLongClick = false;

    public void OnMouseDown()
    {
        isClicked = true;
    }

    public void OnMouseUp()
    {
        isClicked = false;
        isLongClick = false;
        elapsedTime = 0.0f;
    }

    void Update()
    {
        if (isClicked)
        {
            elapsedTime += Time.deltaTime;
            if (longClickTime < elapsedTime) isLongClick = true;
        }

        if (isLongClick) Debug.Log("long click");
    }
}


다음 글에서 롱 클릭을 얼마나 오래 해야하는가를 UI로 표시해보자.

 

Unity Plus:

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Unity Pro:

 

Unity Pro

The complete solutions for professionals to create and operate.

unity.com

 

Unity 프리미엄 학습:

 

Unity Learn

Advance your Unity skills with live sessions and over 750 hours of on-demand learning content designed for creators at every skill level.

unity.com

반응형

댓글