반응형
더블 클릭의 경우 OnMouseUp으로 구현하였기 때문에
해당 스크립트를 Component로 가지는 오브젝트는 반드시 콜라이더가 필요하다.
하지만 테스트 도중 실수로 collider를 지우거나 collider가 애초에 없는 경우가 있다.
이런 케이스에서는 당연히 collider가 있다고 착각하기 쉽기 때문에 디버깅이 어려울 수 있다.
Requirecomponent를 이용하면 필요한 Component를 강제할 수 있다.
아래는 DoubleClickTest에서 콜라이더를 강제한다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Collider))]
public class DoubleClickTest : MonoBehaviour
{
float interval = 0.25f;
float doubleClickedTime = -1.0f;
//bool isDoubleClicked = false;
public GameObject player;
private void OnMouseUp()
{
if((Time.time - doubleClickedTime) < interval)
{
//isDoubleClicked = true;
doubleClickedTime = -1.0f;
}
else
{
//isDoubleClicked = false;
doubleClickedTime = Time.time;
}
}
}
아래와 같이 콜라이더가 없는 큐브에 스크립트를 추가하면 failed 처리되는 것을 알 수 있다.
반대로, 콜라이더가 있는 오브젝트에서 스크립트를 제거하면 아래와 같은 에러가 발생한다.
두 개 이상의 컴포넌트가 필요하다면 아래와 같이 추가하면 된다.
[RequireComponent(typeof(BoxCollider))]
[RequireComponent(typeof(Rigidbody))]
public class DoubleClickTest : MonoBehaviour
//or
[RequireComponent(typeof(BoxCollider), typeof(Rigidbody))]
public class DoubleClickTest : MonoBehaviour
Unity Plus:
Unity Pro:
Unity 프리미엄 학습:
반응형
'개발 > Unity' 카테고리의 다른 글
유니티 C# Dictionary와 delegate를 이용한 함수 포인터 (0) | 2022.03.18 |
---|---|
유니티 - 변수 변경시 이벤트 발생 (Simple Event Handler) (0) | 2022.03.18 |
유니티 Attribute - 직렬화로 Inspector에 보여주기 (0) | 2022.03.15 |
유니티 - 롱 클릭 progress bar 처리하기 (0) | 2022.03.15 |
유니티 - 롱 클릭 구현하기 (Unity Long Click) (0) | 2022.03.15 |
댓글