godot의 mouse_filter
Published at 2025-07-26
TIL - godot의 mouse_filter
날짜: 2025년 7월 26일
godot의 mouse_filter 설정
이 설정은 자바스크립트에서 이벤트가 부모 요소로 버블링(Bubbling)되는 것과 비슷하다.
자바스크립트의 event.stopPropagation()을 호출해서 부모 요소로 이벤트 버블링을 막는 상황을 생각하면 된다.
사용이 필요한 예시 상황은 다음과 같다.
[제작] 버튼으로 제작 가능 리스트를 열었는데 이 상황에서 다시 [제작]을 클릭해서 리스트를 닫고 싶다.


하지만 현재 2D 의 설정 상으로는 리스트 노드가 [제작]버튼을 가린다.
이 상황에서는 리스트 노드의 크기를 조절하면 간단하게 해결되지만, 크기 조정으로 해결할 수 없는 상황에 mouse_filter설정을 사용할 수 있다.
mouse_filter 에는 ignore, stop, pass 세가지 옵션을 줄 수 있다.
- ignore: 이벤트 무시
- stop: 이벤트를 자신이 처리하고 멈춤
- pass: 이벤트를 자신이 처리하고 부모에게도 전달
노드의 기본 설정은 pass로 되어있다.
따라서 위 예시에서는 제작 리스트 노드의 mouse-filter옵션을 Ignore 로 바꿔주면 클릭 이벤트가 무시되므로 아래 깔린 [제작]버튼에 바로 이벤트가 전달된다.