Chapter 7-6. UI : 팝업 뒤의 UI들 이벤트방지

Date:     Updated:

카테고리:

태그:

인프런에 있는 Rookiss님의 [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진 강의를 듣고 정리한 필기입니다. 😀
🌜 강의 들으러 가기 Click

Chapter 7. UI

🚀 팝업 외의 드래그는 안되도록

image

UI_Button은 팝업 캔버스 UI이다. 따라서 이게 팝업으로 생성되면 그 아래 깔리는 팝업들과 고정 UI위에 생성된다. 근데 이 UI_Button 팝업 캔버스 UI 와 관련된 마우스 이벤트 클릭, 드래그 이벤트 같은 것들은 UI_Button 에서만 받을 수 있어야 하는데, 밑에 깔려있는 다른 UI들에서도 마우스, 드래그 등 이벤트가 발생할 수 있다. 따라서 UI_Button 밑에 깔려 있는 UI 들의 이벤트를 막기 위해서 UI_Button의 투명한 이미지이며 크~~~게 덮어서 밑에 깔린 다른 UI들도 덮어버릴 수 있는 Blocker를 만든다. 이 Blocker 이미지가 대신 Rarycast 를 받아서 UI_Button 밑에 깔려있는 UI들은 이벤트를 받지 못하도록!! Rarcast를 받지 못하도록!! 덮어버리는 것이다. 이렇게 해주면 UI_Button 팝업 UI 사용시 밑에 깔려있는 UI들에는 이벤트가 발생하지 않을 것이다. Blocker가 대신 다 받아버려서 방해하기 때문이다. 팝업 UI가 뜨면 그 밑에 깔린 UI들은 마우스 이벤트 등에 반응하지 않도록 해준 것이다. 따라서 당연히 Blocker는 Raycast Target이 체크되어 있어야 한다.

  • Hierarchy상 아래에 있을 수록 가장 나중에 그려지고 가장 위에 그려지므로 Raycast를 먼저 받을 수 있다.
    • 따라서 Blocker를 UI_Button 의 "가장 선두에 있는 자식"으로 순서를 설정해주어야 한다. 이 Blocker가 밑에 있으면 UI_Button의 자식들보다 나중에 그려져 이벤트를 받아야할 UI_Button의 자식들의 Raycast 받는 것을 지가 다 받아 방해할 수 있기 때문이다.


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

Unity Lesson 2 카테고리 내 다른 글 보러가기

댓글 남기기