오브젝트를 중심으로 핀치줌과 회전을 만들었다면, 이제는 오브젝트를 터치해 볼 차례입니다.
다른 영상을 보다보면 Ray를 쏴서 터치를 구현하는 사람들이 많은데, 이번에는 Ray를 사용하지 않고 좀 더 간단하게 오브젝트 터치를 구현해 보도록 하겠습니다.
오브젝트 터치는 매우 간단한 방법으로 만들어 볼 겁니다. PC에서 사용했던 방법으로 모바일에도 똑같이 적용해 보겠습니다.
터치할 오브젝트를 생성하고, ObjectTouch 스크립트도 생성해 줍시다.
유니티에서는 다양한 터치핸들러가 존재합니다.
유니티 공식문서에 따르면, 아래와 같은 터치핸들러가 있다고 하네요.

여기서, 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 함수가 만들어집니다.
이제 다시 유니티로 돌아와서 세팅을 해줘야 합니다.
첫번째로,
터치할 오브젝트에 [위 스크립트]가 있어야 하며,
터치할 오브젝트에 [콜라이더]가 있어야 합니다.

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

Event System은 UI 작업을 할 때에도 빼먹으면 큰일나는 친구입니다.
만약 저 친구가 없다면, 아무런 클릭이 먹히지 않을 거에요.
마지막으로,
Main Camera에 [Physics Raycaster]가 있어야 합니다.

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