프로그래밍 농장

[해결] 개발상 막힌 부분 09/28 -1 본문

Unity

[해결] 개발상 막힌 부분 09/28 -1

Tennessee201 2022. 9. 20.
728x90

유니티 UI 및 화면에서 마우스의 Hover 및 Click, Drag 에 대응되는 기능을 구현하고자 아래 포스팅과 같은 마우스 인풋에 대응되는 코드를 사용하였다.

 

유니티 C# 4일차 마우스 기본(OnMouseEnter, OnMouseUp ~)

유니티 C# 4일차 마우스 기본 (OnMouseEnter, OnMouseUp ~) ㆍ 3일차까지는 마우스에 대해서는 한번도 얘기가 안나왔었는데  역시 3D게임의 꽃은 마우스이므로.. 오늘은 마우스의 기본 C#  코드만 보도록

itpangpang.tistory.com

 

하지만 아무리 클릭, 호버를 하여도 기능이 작동하지 않는 문제가 발생하였다. 


 

구글링 결과,

 

UI는 Canvas에 Graphic Raycaster라는 것이 있어서, 이것이 UI의 모든 포인터 이벤트를 관리한다.

 

 

Canavas-Graphic Raycaster

 


사용법은 아래와 같다.

1. using UnityEngine.EventSystems;

2. 여러가지 인터페이스 중 사용할 것을 고른다. (여러개 동시 사용도 가능하다.)

3. 선언한 인터페이스를 구현한다.

using UnityEngine;
using UnityEngine.EventSystems;

public class UIEventTest : MonoBehaviour
    , IPointerClickHandler
    , IDragHandler
    , IPointerEnterHandler
    , IPointerExitHandler
{
    public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log("Click");
    }
    
    public void OnDrag(PointerEventData eventData)
    {
        Debug.Log("Drag");
    }
    
    public void OnPointerEnter(PointerEventData eventData)
    {
        Debug.Log("Enter");
    }
    
    public void OnPointerExit(PointerEventData eventData)
    {
        Debug.Log("Exit");
    }
}

 

 

728x90