본문 바로가기
유니티 공부/Unity

Unity - IPointer Interface(IPointerEnterHandler등)

by 코딩하는 돼징 2023. 5. 12.
반응형

IPointer Interface

IPointer Interface를 사용하기 위해 using UnityEngine.EventSystem을 추가해주어야 한다. 마우스 이벤트를 처리하는 인터페이스이다.

using UnityEngine.EventSystems;

1. IPointerEnterHandler

마우스의 커서가 충돌 영역 안으로 들어 올때 호출 되는 콜백 함수

public void OnPointerEnter(EventSystems.PointerEventData eventData);

 

2. IPointerExitHandler

마우스의 커서가 충돌 영역 밖으로 나갈 때 호출 되는 콜백 함수

public void OnPointerExit(EventSystems.PointerEventData eventData);

Unity에서 IPointerEnterHandler와IPointerExitHandler사용 예시

해당 Cube에 커서를 올리면 색깔이 변하게 만들기

전제 조건

01 Cube에 Collider있는지 확인

02 UI - EventSystem 추가

03 MainCamera에 Physics Raycast추가

public void OnPointerEnter(PointerEventData eventData)
{
    GetComponent<MeshRenderer>().material.color = changeColor;
    NameText.text = "OnPointerEnter!";
}
public void OnPointerExit(PointerEventData eventData)
{
    GetComponent<MeshRenderer>().material.color = color;
    NameText.text = "OnPointerExit!";
}

동영상 참조


3. IPointerClickHandler

마우스의 클릭이벤트를 감지하면 실행하는 콜백 함수

public void OnPointerClick(EventSystems.PointerEventData eventData);

Unity에서 IPointerClickHandler사용 예시

IPointerClickHandler을 통해서 간단한 클릭커 게임 만들기

전제조건

01 Cube에 Collider있는지 확인

02 UI - EventSystem 추가

03 MainCamera에 Physics Raycast추가

public void OnPointerClick(PointerEventData eventData)
{
    score++;
    Score();
}
public void Score()
{
    NameText.text = score.ToString();
}

동영상 참조


4. IPointerUpHandler

마우스의 버튼을 놓았을때 호출되는 콜백 함수

public void OnPointerUp(EventSystems.PointerEventData eventData);

 

5. IPointerDownHandler

마우스의 버튼이 눌러졌을때 호출되는 콜백 함수

public void OnPointerDown(EventSystems.PointerEventData eventData);

Unity에서 IPointerUpHandler와IPointerDownHandler사용 예시

해당 Cube를 클릭하면 색깔이 빨갛게, 클릭을 떼면 원래 색상으로 변하게 만들기

전제조건

01 Cube에 Collider있는지 확인

02 UI - EventSystem 추가

03 MainCamera에 Physics Raycast추가

public void OnPointerDown(PointerEventData eventData)
{
    NameText.text = "OnPointerDown!";
    GetComponent<MeshRenderer>().material.color = Color.yellow;
}
public void OnPointerUp(PointerEventData eventData)
{
    NameText.text = "OnPointerUp!";
    GetComponent<MeshRenderer>().material.color = color;
}

동영상 참조

 

반응형

'유니티 공부 > Unity' 카테고리의 다른 글

Unity - 옵저버 패턴(Observer Pattern)  (0) 2023.05.21
Unity - Coroutine(코루틴)  (0) 2023.05.20
Unity - SetActive, activeSelf  (0) 2023.05.12
Unity - 싱글톤(Singleton), Manager  (0) 2023.05.11
Unity - ScriptableObject  (0) 2023.05.10

댓글