public event Action<Vector2> OnMoveEvent; // Action은 무조건 void만 반환해야 아니면 Func
강의 내용중에 "Action은 무조건 void만 반환해야 아니면 Func" 이라고 주석을 달아주시는데 개인적으로 찾아봤다.
일단 `event`는 일반적으로 `Delegate`를 통해 정의된다.
이벤트를 발생시키는 클래스는 해당 델리게이트를 이용하여 이벤트를 호출한다.
Delegate란?
델리게이트(대리자)는 메서드에 대한 참조를 담는 형식이다. 즉, 메서드를 대신 호출할 수 있는 객체이다.
메서드를 '대신' 호출하니까 대리자라고 불리는 것 같다.
그래서! `event`와 같이 사용되는 델리게이트에는 `Action` `Func`가 있다.
둘의 차이는 `Action`은 반환값이 없는 메소드를 호출하고, `Func`은 반환값이 있는 메소드를 호출한다.
반응형
'스파르타 게임개발종합반(Unity) > TIL - 본캠프 매일 공부 기록' 카테고리의 다른 글
2024.05.14 TIL - Queue를 활용한 오브젝트 풀(ObjectPool) (0) | 2024.05.14 |
---|---|
2024.05.13 TIL - 2D 정렬, 앞일 땐 앞이고, 뒤일 땐 뒤에 있기 (0) | 2024.05.13 |
2024.05.09 TIL - 부채꼴 모양으로 화살 날리는 로직 (0) | 2024.05.09 |
2024.05.08 TIL - GravityScale, InputManger 설계 (0) | 2024.05.08 |
2024.05.07 TIL - 프로젝트 마무리 (0) | 2024.05.07 |
댓글