반응형
참고
유니티에서는 더블 클릭처럼 롱 클릭을 직접 구현해야 한다.
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:
Unity Pro:
Unity 프리미엄 학습:
반응형
'개발 > Unity' 카테고리의 다른 글
유니티 Attribute - 직렬화로 Inspector에 보여주기 (0) | 2022.03.15 |
---|---|
유니티 - 롱 클릭 progress bar 처리하기 (0) | 2022.03.15 |
유니티 UI - 간단한 토스트 메시지 만들기 (Toast Message) (0) | 2022.03.14 |
유니티 - Line Renderer로 게임 오브젝트끼리 연결하기 (연결 선 그리기) (0) | 2022.03.12 |
유니티 Attribute - 에디터 플레이 후 씬 자동 저장 (Unity Auto Saving In Editor) (0) | 2022.03.11 |
댓글