코드 및 공부/입력 관리

IsPointerOverGameObject()란?

ekrxjvpvj0110 2024. 12. 23. 19:24

유니티 버전 - 2022.3.17f1

 

 

 

 

 

목차


  • IsPointerOverGameObject()
  • 사용 예시
  • 주의할 점

 

 

 

 

 

IsPointerOverGameObject()


마우스 입력을 받았을때 게임 오브젝트or씬 위에서 클릭이 일어났는지 UI위에서 클릭이 일어났는지 반환해주는 메서드입니다, 이를 이용하여 마우스 클릭으로 특정동작을 수행해야할 때 UI를 클릭했다면 동작을 수행하지 못하도록 할 수 있습니다

 

 

 

 

 

사용 예시


 if (p_context.phase == InputActionPhase.Performed)
        {
            if (InGame.isUIOpened) return;
            if (EventSystem.current.IsPointerOverGameObject()) return;
            
            // 수행 할 코드

해당 메서드는 좌클릭시 슬롯의 아이템의 종류에 따라 특정 기능을 수행하도록 되어있습니다

마지막 if문을 보면, 만약 클릭이 UI 위에서 일어났다면 아이템을 사용하지 못하도록 하는 경우입니다

 

 

 

 

 

주의할 점


1. EventSystem 컴포넌트가 있어야 동작합니다

2. UI 캔버스의 GraphicRaycaster 컴포넌트가 활성화 되어야합니다