[Unity] 모바일 3D 오브젝트 터치 만들기

요구르트·2025년 3월 9일

Unity

목록 보기
3/7

오브젝트를 중심으로 핀치줌과 회전을 만들었다면, 이제는 오브젝트를 터치해 볼 차례입니다.
다른 영상을 보다보면 Ray를 쏴서 터치를 구현하는 사람들이 많은데, 이번에는 Ray를 사용하지 않고 좀 더 간단하게 오브젝트 터치를 구현해 보도록 하겠습니다.

Object Touch

오브젝트 터치는 매우 간단한 방법으로 만들어 볼 겁니다. PC에서 사용했던 방법으로 모바일에도 똑같이 적용해 보겠습니다.
터치할 오브젝트를 생성하고, ObjectTouch 스크립트도 생성해 줍시다.

1. Touch Handler

유니티에서는 다양한 터치핸들러가 존재합니다.
유니티 공식문서에 따르면, 아래와 같은 터치핸들러가 있다고 하네요.

여기서, IPointer__Handler에 대해 한번 알아보겠습니다.
Ipointer__Handler는 총 5가지의 종류가 있습니다.

IPointerClickHandler : 빠르게 눌렀다 떼었다 했을 때 발동됨.
IPointerEnterHandler : 마우스 포인터가 들어왔을 때 발동됨.
IPointerDownHandler : 눌렀을 때 발동됨.
IPointerExitHandler : 마우스 포인터가 나갔을 때 발동됨.
IPointerUpHandler : 뗐을 때 발동됨.

이번에 저희가 만들 터치는 오브젝트를 빠르게 눌렀다 뗐을 때 클릭이 되었다고 인식하고, 이후의 상호작용을 하는 것을 만들 겁니다.
그러므로 IPointerClickHandler를 이용하여 오브젝트 터치를 구현해 보도록 하겠습니다.

using System;
using UnityEngine;
using UnityEngine.EventSystems;

public class ObjectTouch : MonoBehaviour, IPointerClickHandler
{
    public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log("클릭됨");
    }
}

MonoBehaviour 옆에 IPointerClickHandler를 작성해주고 alt+enter를 눌러주면 [인터페이스 구현]이라고 뜰 텐데요.
이걸 눌러주시면 자동으로 OnPointerClick 함수가 만들어집니다.

이제 다시 유니티로 돌아와서 세팅을 해줘야 합니다.

2. Unity Setting

첫번째로,
터치할 오브젝트에 [위 스크립트]가 있어야 하며,
터치할 오브젝트에 [콜라이더]가 있어야 합니다.

아까 위에서 작성했던 ObjectTouch 스크립트와 콜라이더(박스든, 캡슐이든 상관 X)가 있어야 합니다.

두번째로,
[Event System]이 있어야 합니다.

Event System은 UI 작업을 할 때에도 빼먹으면 큰일나는 친구입니다.
만약 저 친구가 없다면, 아무런 클릭이 먹히지 않을 거에요.

마지막으로,
Main Camera에 [Physics Raycaster]가 있어야 합니다.

Main Camera를 선택하고 Add Component를 눌러 Physics Raycaster를 넣어주세요.
이렇게 한 후 실행하면 오브젝트 터치가 잘 될겁니다.

profile
경기게임마이스터고 4기

0개의 댓글