- delegate는 메소드에 대한 참조로 하나의 타입
- event는 delegate에 event 키워드를 선언해서 사용
둘의 차이점은 "event는 외부에서 직접 호출이 불가능하다"는 것이다. 이벤트 기반 프로그래밍을 할 때 보다 안정적으로 사용할 수 있다.
따라서 Delegate는 콜백용도로 사용하고, event는 객체 상태변화나 사건의 발생을 용도로 주로 사용한다.
//이벤트 선언
public event Action OnSomethingValueChanged;
//외부에서 이벤트 등록
OnSomethingValueChanged += method;
//외부에서 직접 호출 불가
EventClass.OnSomethingValueChanged?.Invoke(); //Error!!
'유니티 > 팁, 정보 노트' 카테고리의 다른 글
[Unity] 콜라이더가 달린 물체를 움직일 때 주의할점 (0) | 2021.12.05 |
---|---|
[Unity]LayerMask 사용 예시 (0) | 2021.12.05 |
[Unity]Animation의 동작에 맞춰 함수 실행하기 (0) | 2020.03.12 |
C#) null 관련 연산자 (?.) (0) | 2020.02.19 |
씬 인덱스 or 이름 체크 (0) | 2020.01.31 |