UI_3

CJB_ny·2022년 2월 4일
0

Mini_MMO_RPG

목록 보기
16/16
post-thumbnail

그러면 이제

Bind, Get 작업은 끝났으니 이벤트를 연결을 해주어야하는데

이벤트 연동을 해보도록 하겠다.

뭔가 콜백 방식으로 연결을 해주어야 할 것이다.

우리가 애초에 InputManager에서

이렇게 UI가 클릭 되는 부분은 이함수를 사용을 했었었다.

그래서 Ui의 Event처리는 Evnetsystem을 사용해서 처리를 하면 될 거 같다라는 생각이 든다.

그리고 애초에 UI오브젝트를 만들면


이렇게(지금은 @붙어있지만) Eventsystem이 생성이 되었었다.

그리고 component로도


이렇게 eventsystem을 들고있었었다.

결론부터 얘기를 하자면 Eventsystem을 최대한 활용을해서 UI와 연동을 해야겠다라는 생각이 든다.


이렇게 UI_EventHandler가 해주는 역할은

Eventsystem이 뭔가

클릭이든 드래그든 눌렀다라는 탐지를 했을때

event를 쫙 뿌려 줄것인데

그것을 UI에서 캐치를 해서 콜백으로 날려 줄 것이다.

그래서 UI_EventHandler를 상위 부모 오브젝트에 물려주면

자식들중 하나가 event를 받을 것이다.

그런데

여기 UI_Button산하의 자식들에게 붙여주면은

다른 같은 형제끼리들한테는 적용이 안된다.

그래서 뭐 UI_Button산하에 아무 버튼에다가 UI_eventHandler스크립트 넣어서

점프 버튼에 이벤트 핸들러로 클릭시 _player.jump()를 호출을 하면 잘된다.

그래서 UI_EventHandeler가 대충 만들어 졌는데

이것을 연동을 하는 작업을 해보도록 하자.

그래서 뭐


이러한 작업 까지는 되는데

이 작업 하는 부분을 UI_Base에다가

함수를 하나 파서 정리를 해주도록 하자.


그래서 BindEvent를 만들어 주고

인자로 GameObject를 받고 두번째 인자로 Action을 받는데< PointerEventData >라는 Action을 받아준다.

그리고 Action으로 Drag인지 클릭인지 종류가 많아 질텐데 그것을 고를 수 있는 부분을 마지막 인자에 받아주도록 하자.

제일 많이 사용하는것이 Click이니까 제일 많이 사용하는 Click을 넣어주도록 하자.

우리가

UI_Button산하에서 어떤 아이들한테 UI_EventHandler를 적용을 해줄지 미정인 상태이고

그 부분을 코드로 자동으로 해주길 원하니까


이런식으로 코드를 넣어 주도록 하자.

그리고

이 함수는 자주 쓰이니까 Util에다가 만들어 주자.

profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글