• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

BindEvent 와 ScrollRect에 관련된 질문입니다.

21.08.26 17:45 작성 조회수 277

0

안녕하세요. 강의를 통해 UI 를 익히며 BindEvent를 유용하게 쓰고 있었습니다.

그런데 한가지 문제가 생긴것이 ScrollRect를 쓰면서 생겼습니다.

원래 ScrollRect를 쓸때, Contents 부분에 버튼을 자식으로 넣은 후, 스크롤을 하며 위 아래로 살펴보게끔 하는 용도로 쓰고 있었고, 버튼에는 클릭하면 함수가 실행되도록 BindEvent를 통해서 함수를 넣었습니다.

그런데 이렇게 넣은 버튼들은 스크롤 할때 그 버튼을 꾹 누른 상태에서 스크롤을 시도하면, 스크롤이 시도가 안되는 현상이 있더군요.

혹시 이런 상황이 발생될 때, 스크롤을 할 수 있는 방법이 없을까요?

답변 2

·

답변을 작성해보세요.

2

일단 이런 유니티 관련 문제는 실험과 검색을 찾는게 좋습니다.
그러나 처음에는 감이 잘 안 올테니, 제가 찾은 스텝을 설명드리겠습니다.

1) BindEvent를 주석처리하면 문제가 해결되는 것을 확인
2) UI_EventHandler에서 IDragHandler, IBeginDragHandler, IPointerClickHandler를
하나씩 제거해보면서 IDragHandler가 범인인 것을 확인
3) 구글링 ScrollRect + IDragHandler

4) 둘이 사이가 안 좋은 것을 확인. 및 임시 땜방 방법 확인. (혹은 IDragHandler 사용시 ScrollRect 미사용)


https://stackoverflow.com/questions/27517931/how-to-make-content-dragable-inside-a-scrollrect-in-unity-4-6

답변 참고해서 문제 해결

요렇게 해주시면 되겠습니다.

melody3631님의 프로필

melody3631

질문자

2021.08.30

허억... 너무 감사합니다.. 진짜 너무 디테일하고 세부적으로 알려주셔서 감사합니다.

심지어 해결 방법 순서까지 알려주시다니.. 너무 감사합니다.

앞으로 저런 방식으로 접근해서 하나하나 알아가도록 하겠습니다. 너무 감사합니다.

1

그건 딱히 BindEvent의 문제는 아니고,
버튼이 터치 이벤트를 선점해서 발생하는 것으로 판단됩니다.
UI 문제는 너무 다양한 상황이 있기에 구글링을 해보시기 바랍니다.

https://knightk.tistory.com/33

melody3631님의 프로필

melody3631

질문자

2021.08.27

소중한 답변 감사합니다.

강사님깨서 주신 블로그를 통해 내용을 확인해 봤는데, 내용에는 버튼의 interactable 을 껏다 켰다 관련해서 나오고 있었습니다.

그래서 이런 문제인가 싶어서 현재 BindEvent에 등록된 버튼의 interactable 을 껏다 켰다 한 후, 스크롤을 시도해도 잘 되지 않더군요.

정말로 BindEvent의 문제가 아닌가? 싶어서 버튼 자체의 enabled도 꺼보고 시도해보고, 이것저것 다 해봤으나, 계속 스크롤이 되지 않더군요.

그래서 마지막으로 BindEvent 부분을 주석을 하니, 스크롤이 원활하게 되었습니다.

제가 아직 미숙하여 해답을 잘 모르겠습니다. 강사님 말씀대로 버튼이 터치 이벤트를 선점해서 발생되는 듯 한데.. 혹시 가능하다면 제가 유니티 파일을 보내봐도 괜찮을까요?

네 rookiss@naver.com로 보내주시기 바랍니다.

melody3631님의 프로필

melody3631

질문자

2021.08.27

넵 보냈습니다~ 감사합니다