- Today
- Total
Notice
Recent Posts
Recent Comments
Link
250x250
프로그래밍 농장
[해결] IPointerClickHandler 인식이 안되는 문제 본문
728x90
프로젝트를 진행중 UI의 IPointerClickHandler가 정상적으로 인식하지 못하는 경우가 발생하였다.
마우스 Hover ( OnPointerEnter ) 는 정상적으로 동작하는데 클릭에 반응을 안하는 문제가 발생하여 여러가지 경우의 수를 생각해보았다.
혹시 Canvas상의 우선순위를 못받아서 ?
Canvas 보다 살짝 뒤에 있어서 입력을 못받는 문제?
.
.
기본적으로 IPointerClickHandler 를 인식하려면 UI 에서는 collider가 있어야하며, Canvas에 기본적으로 붙어있는 Graphic Raycaster가 잘 붙어있는지도 확인하여야 한다.
이러한 부분을 전부 체크하였음에도 마우스 클릭이 전혀 먹지 않았다. 게다가 아래와 같이 EventSystem에서 실시간으로 마우스 호버 및 pressed에 대한 값도 정상적으로 받아오고 있었는데 말이다.
- 해결법
결과적으로는 입력을 받는 Raycast Target의 체크가 해당하는 오브젝트에만 켜져있어야하는데 부모로 감싸고있는 오브젝트도 켜져있어서 접근이 불가한 상황이었다.
-> 애초에 값을 참조할 오브젝트에 스크립트를 붙히고, 같은 컴포넌트에서만 위와 같이 Raycast Target을 켜주면 가장 깔끔한 구현방식이 될것이다.
+ 오브젝트는 하단에 있을수록 우선으로 인식하므로 하단에 있는 오브젝트중 Raycast Target을 받을 필요없는 오브젝트들은 정리를 해주는 작업이 필요하다.
728x90
'Unity' 카테고리의 다른 글
씬 전환할 때 라이트가 어두워지는 문제 해결 방법 (0) | 2022.09.23 |
---|---|
이펙트 및 효과용 스프라이트 시트 사이트 (0) | 2022.09.22 |
[해결] Visual Scripting에서 c# Variable 접근하기 (0) | 2022.09.21 |
[해결] 개발상 막힌 부분 09/28 -1 (1) | 2022.09.20 |
[해결] 개발상 막힌 부분 09/28 -0 (0) | 2022.09.20 |