마우스나 터치 같은 화면으로 입력하는 처리를 해야하는 경우가 많은데 유니티에서는 EventTrigger라는 것을 지원한다. 일반적인 방법인 Input.mousePosition나 Input.GetTouch()를 이용해서 직접 처리하는 대신에 화면 전체나 혹은 원하는 부분을 덮는  Panel Object에 EventTrigger Component를 추가해서 각종 화면 입력을 처리할 수 있게 된다.

 

간단한 예시 (Pointer Enter : 포인터가 Panel 위에 올라왔을때, Drag : 드래그 중일때, Move : 포인터가 Panel 위에서 움직이는 중일때)

 

당연하게도 이 모든 것들이 스크립트에서도 처리가 가능한데 그 방법은 panel에 들어갈 스크립트의 클래스에 원하는 EventTrigger 인터페이스를 상속하고 필요로 하는 함수를 구현해주면 된다.

 

이번에 발생한 문제는 나는 마우스 클릭 후 놓을때, 혹은 터치 후 손을 뗄 때 반응하기를 원했기 때문에 클래스에 IPointerUpHandler를 상속시키고 구현해야하는 함수 public void OnPointerUp(PointerEventData eventData)를 구현했다.

 

하지만 기능은 원하는대로 동작하지 않았다. 무슨 문제인지 살펴보니 IPointerUpHandler와 IPointerDownHandler는 항상 짝지어서 사용해야 하는 것 같다. 실제로 해당 클래스에 두 인터페이스를 모두 상속시킨 이후에는 기능이 원하는대로 작동한다.

 

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

+ Recent posts