인프런 커뮤니티 질문&답변
UI_EventHandler에 대해서
해결된 질문
작성
·
209
0
안녕하세요!! 항상 친절한 답변 감사드립니다.
복습하다가 문득 궁금한 점이 생겨 질문드립니다!
Player의 경우 InputManager안에 있는 OnUpdate함수를 Manager에서 계속 update해주면서 Input을 감지하는 반면
UI의 경우 EventHandler를 두고 UI에서 발생할 수 있는 동작을 정의하여 해당 동작을 EventHandler에서 Inuput을 감지하는 것으로 보입니다..!
이렇게 Input을 받아들이는 방식을 다르게 하신 이유는 통상적인 게임 디자인 방식인건가요??
아니면...UI는 마우스를 활용한 Input만 이루어지기 때문에 PointerData를 사용할 수 있어서 인가요..? 그렇다면 Player_EventHandler를 따로 두고 Action<키보드입력을 받을 클래스>를 활용하는방법은 없나요...?
질문이 너무 꼬리를 무는 것 같아 정신없네요...죄송합니다..
답변 부탁드립니다!
답변 2
2
정해진 방법은 없고 게임 엔진에 맞게, 상황에 맞게 만들어주면 됩니다.
강의에서는 InputManager를 만들었고 마우스 기반 게임에선 유용하지만
일반적으로 Player는 PlayerController의 Update에서 체크하는 것이 일반적입니다.
UI는 조금 얘기가 다른데,
마우스나 손으로 2D 화면 좌표를 누르면
3D화면 상에 배치된 물체 중 명중하는 것이 있는지 확인하고,
명중해야 비로소 그 물체가 클릭된 것으로 인정할 수 있습니다.
그런데 (Raycasting을 통해) 일일히 만들기 보다는
유니티에서 제공하는 UI 시스템과 EventSystem을 이용하면
터치 이벤트를 자동으로 발생시켜주니 훨씬 편리하게 만들 수 있습니다.
0





