-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
해결됨
Action 관련하여..
21.02.25 23:48 작성 조회수 219
0
안녕하세요!! 바쁘신 와중에 빠른 답변 항상 감사드립니다.
사실 Part3. 강의의 InputManager에 대한 이해도를 높히고자 다시 이 부분으로 돌아왔는데요!
이 강의에서는 Action은 단지 인자와 반환형식이 모두 없는 Delegate라고 설명해 주시는데
실제 InputManager에서 Action을 사용하실때는
public Delegate void Action();은 이미 System상 선언되어있으니 생략하더라도
public Event Action KeyAction = null;
라는 Event 선언 없이 바로
Action OnMouseClicked = null;
로 Event를 만든 후 여기에 구독 신청을 하더라구요!!
이건 어떻게 가능한 건가요???
System상 이미 public Event Action까지 선언되어 있는 건가요??
답변을 작성해보세요.
3
Rookiss
지식공유자2021.03.02
아 그렇군요.
설명을 살짝 헷갈리게 한 것 같네요.
이벤트 방식이라는게 event 문법을 의미한게 아니라
콜백 방식을 의미한 것이었습니다.
delegate나 event 모두 동일하게 Observer 구현을 할 수 있습니다.
1
Rookiss
지식공유자2021.02.25
System상 이미 public Event Action까지 선언되어 있는 건가요??
-> 그렇지는 않고,
event를 붙이지 않고 Action만 사용하게 되면
event가 아닌 기본 delegate 문법을 사용하는 것입니다.
사실 event랑 delegate랑 거의 비슷한데
event가 조금 더 안전성을 강화한 버전이라고 보시면 되겠습니다.
0
0
김지수
질문자2021.03.01
아 그렇군요!!
사실 이 질문을 드린 이유는 Action delegate만으로 짜인 코드를 설명해주실 때 '이벤트를 발생시킨다' 라던지 '이벤트 방식의~'라는 설명을 자주 사용하셔서 개인적으로 혼란이 와서입니다ㅠㅠ
그렇다면 사실상 Event문법을 사용하진 않았고 Action delegate 만 사용한 Observe 패턴의 이벤트 방식인가요...??
답변 4