이번 프로젝트를 진행하면서 겪은 시행착오를 공유하려고 합니다!
어려운것은 아니지만, 혹시 나중을 위해 정리해두겠습니다!
마우스 혹은 터치를 구현하게 되면 저 같은 경우에는 가장 먼저 생각나는것이
Input.GetMouseBottonDown()이나 Input.GetTouch()가 있었습니다.
<코드 예시>
<결과>
하지만 보시다시피 전체화면에서 발생하는 터치이벤트...
저에게 필요했던건 일정영역 안에서만 터치이벤트가 발생하는 것이었습니다.
그래서 찾아낸것이 IPointer 인터페이스입니다.
// EventSystems 네임스페이스를 사용해야 가능
using UnityEngine.EventSystems;
EventSystems 네임스페이스를 사용해서 스크립트에 원하는 Ipointer 이벤트핸들러를 상속받으면
인터페이스에 선언한 메소드를 구현하라고 친절하게 알려줍니다.
아래와 같이 메소드를 구현해주면 해당 스크립트를 컴포넌트로 지니고있는 오브젝트 혹은 UI에만
마우스 혹은 터치가 발생합니다.
<코드예시>
<결과>
이렇게 되면 일정영역에서만 원하는 터치이벤트를 발생시킬 수 있어서
제가 정확히 원하는 결과를 가져올수있게 됐습니다.
좀더 디테일한 설명과 다른예시를 알고싶으시다면 아래 Unity Scripting API를 참고해주세요!
주소: https://docs.unity3d.com/ScriptReference/EventSystems.IPointerDownHandler.html
반응형
'게임 개발 > Unity' 카테고리의 다른 글
[Unity C#] 유니티 해상도대응 (갤럭시 S10) - Safearea (2) | 2019.12.11 |
---|---|
[Unity C#] 팝업창 만들기 - 빌더패턴의 활용 (8) | 2019.08.03 |
[unity C#] - 타이머 설정하기 (0) | 2019.04.03 |
[Unity C#] FSM 디자인 패턴 적용시켜보기 (5) | 2019.03.03 |
[unity, c#]01. inspector 변수표시 (0) | 2019.02.23 |