Unity3D/유니티 공부

유니티 게임 오브젝트와 UI 클릭을 구분하기 - [EventSystem.IsPointerOverGameObject]

상연 2022. 1. 16. 02:57

목차

    입력을 하나의 스크립트에서 처리를 한다고 할 때, 이런 경우가 있을것이다.

    Player 캐릭터의 움직임에도 마우스 클릭이 사용되고

    UI 버튼을 사용할때에도 마우스 클릭이 사용된다.

    이 경우, UI 버튼만 누르고 싶어서 누른건데 Player 캐릭터또한 UI 버튼 방향으로 이동한다면?

     

    대충 이런 상황에서 사용되는게 IsPointerOverGameObject이다.

     

    https://docs.unity3d.com/kr/530/ScriptReference/EventSystems.EventSystem.IsPointerOverGameObject.html

     

    Unity - 스크립팅 API: EventSystems.EventSystem.IsPointerOverGameObject

    If you use IsPointerOverGameObject() without a parameter, it points to the "left mouse button" (pointerId = -1); therefore when you use IsPointerOverGameObject for touch, you should consider passing a pointerId to it.

    docs.unity3d.com

     

    공식문서이다.

     

    이를 사용하면 Boolean 타입을 Return 하는데

    현재 마우스가 UI 위에 있다면 True를 Return 한다.

    따라서, True를 반환했을때는 UI위에있다는것이므로 Player 캐릭터가 움직이지 않게 한다면 될 것 이다.