이벤트 - 델리게이트(콜백) 함수.
플레이어가 죽었다고 알릴 경우 이를 인지한 주변의 적들의 행동을 멈추게 할 때 사용합니다.
이 경우 이벤트 디스패처를 호출한 쪽이 플레이어, 받는 쪽이 주변의 적들입니다. 받는 쪽이 불특정 다수이며 그냥 호출만으로 반응시키고 싶을 때는 받는 쪽에서 이를 이벤트로 구현하는 방식입니다.
적들은 계속 플레이어의 상태를 체크할 필요가 없어지며, 플레이어도 적들이 플레이어의 죽음을 체크하는지 확인할 필요가 없습니다.
인터페이스
인터페이스를 상속받은 액터는 형번환을 하지 않고 인터페이스 콜방식으로 액터에 호출만 해주면 반응합니다.
이 때 인터페이스를 상속받은 액터에서 해당 인터페이스 함수를 오버라이딩하여 구현하였다면 해당 함수를 호출했을 때 반응하고, 구현을 하지 않았다면 반응하지 않습니다. 구현 안한 상태에서 호출하였다고 오류를 뱉지 않습니다.
인터페이스의 좋은 예시로는 리모콘이 있습니다. 리모콘의 전원 버튼을 눌렀을 때 해당 리모콘과 연결된 기기의 전원이 켜지거나 꺼지는 반응하는 것처럼 리모콘도 하나의 인터페이스라 할 수 있습니다.
클래스 내에 구현한 맴버함수 호출
해당 클래스 객체 타입에 접근해야만 해당 함수를 호출할 수 있습니다. 이 때문에 형변환을 합니다.
해당 함수를 구현하지 않은 상태에서 호출하는 것 자체가 불가능하고 찾지도 못합니다.
한들어 놓은 함수를 외부에서 사용하다가 해당 함수를 제거 혹은 파라미터 값 변경 등이 일어나면 컴파일 오류를 뱉습니다.
출처
'Unreal Engine > etc.' 카테고리의 다른 글
[Unreal Engine 4 etc.] 특정 액터를 향해 화살표를 회전시키기 (0) | 2022.08.16 |
---|---|
[Unreal Engine 4 etc.] 서로 다른 클래스 간의 통신을 위한 4가지 방법 (0) | 2021.04.21 |
[Unreal Engine 4 etc.] 입력 방향 구하기 (0) | 2021.02.19 |
[Unreal Engine 4 etc.] Widget의 SetFocus함수 사용 주의점 (0) | 2021.02.09 |
[Unreal Engine 4 etc.] 프로젝트 압축시 필요한 디렉토리 (0) | 2020.06.25 |