오늘의 코드카타
오늘의 공부
학습한 강의
- AI를 활용한 간단한 스텔스 게임 실습
(10) 개발한 게임 구현 요소 정리
- VR/AR 개발을 위한 언리얼 엔진 사용 기초
(1) XR 컨텐츠의 미래 가치
(2) VR/AR 헤드셋 연결하기
오늘의 CS
델리게이트
- 함수에 대한 안전한 포인터 역할로, 특정 이벤트가 발생할 때 호출될 함수들의 목록을 정의함
- 하나 이상의 함수에 대한 참조를 캡슐화하는 객체로, 함수를 간접적으로 호출할 수 있으며, 런타임에 함수를 동적으로 바인딩하거나 해제할 수 있음
- 특징
- 느슨할 결합 : 발신자는 수신자 객체에 대해서 모르고, 단지 정해진 함수를 호출하기만 함
- 멀티캐스트 : 하나의 델리게이트에 여러 개의 함수를 바인딩할 수 있고, 호출되면 바인딩된 모든 함수가 순차적으로 실행됨
- 타입 안전성 : 컴파일러가 함수의 시그니처(반환 타입, 매개변수 타입 및 개수)를 검사하여 잘못된 함수 연결을 방지함
이벤트
- 멀티캐스트 델리게이트와 유사한 기능으로, 블루프린트 시스템에 노출한 형태를 지칭함
UFUNCTION() 매크로에서 BlueprintImplementableEvent 키워드를 붙여서 블루프린트에서만 활용 가능하게 하거나, BlueprintNativeEvent 키워드를 붙여서 블루프린트에서 오버라이드해서 활용할 수 있음
DECLARE_EVENT() 매크로를 통해서도 Event 선언이 가능함
- 특징
- 블루프린트 접근 : 블루프린트에서 이벤트 디스패처로 표시됨
- 시각적 사용 :
Add Event 노드를 활용하여 이벤트를 만들거나, Call Event 노드를 활용하여 이벤트를 호출할 수 있음
- 전역적인 호출 불가능 : 일반적인 Delegate와는 다르게 전역적인 호출이 불가능해 좀 더 안전하게 이벤트를 실행/노출시킬 수 있다.
- Event는 블루프린트 스크립팅 시스템과 상호작용하여 비교적 성능이 떨어짐