2aa8d915eddb2cf420afd8b236ef203e54dc52e67c6619


버튼 One과 Two를 약간 겹쳐서 나오게 했음.


그런데


2aa8d915eddb2ce869b6d09528d527034015e456d79c


분명 Two버튼이 위에 있는데 겹치는 부분을 클릭하면 One버튼이 눌림





당혹스럽겠지만, 당연한게 (난 첨접했을때 매우 당황했음)


렌더링도 순서대로 되는데, 이벤트 처리도 순서대로 됨.


OnGUI가 호출되는 경우는


Event.current.type==Render와 Mouse이벤트일때 호출이 되는데


마우스 이벤트 역시 GUI.Button("One")에서 먼저 처리해버리고 Event.current.Use()로 사용해버리기 때문임.


이 문제에 대한 근본적인 해결 방법은





























































없음.


ImGUI의 편리함에서 오는 부작용같은 거임.


그래서 ImGUI를 가지고 UI를 만들땐 GUI요소들이 서로 겹치지 않게 해야 됨.


다른사람들이 만들 툴 이것저것 한번 코드 뜯어봤는데


다들 각자 개성있는 방법으로 우회해서 처리하고 있더라고.




유니티에 커스텀BT만들다가 겪게된 일임.


2aa8d915eddb2cf520afd8b236ef203ed76b4211cf600b

위에가 예전에 만든거. 내가 말했던 그 이벤트 처리 문제 때문에, 위에 있는 Inspector에서 이벤트를 처리하게 하려고 순서를 꺼꾸로 해버림.


노드들이 위에 덮고 있어도 클릭하면 인스펙터가 이벤트를 받아먹음.


한동안 해결방안을 못찾아서 저렇게 사용하고 있었음.


아래는 아예 구조를 다시 짜서 만든 BT. 저건 문제를 해결해서 문제 없이 이벤트 잘 처리함.




근데 정말 방식이 좋진 않음.




그냥 이런게 있다는거 공유해봄.


혹시 좋은 방법 아는 사람 있으면 좀 공유해줘.