https://docs.unrealengine.com/5.0/ko/macros-in-unreal-engine/
C++의 매크로와 비슷하게 블루프린트에도 매크로라는 것이 존재한다.
언뜻보면 블루프린트의 함수와 매크로는 굉장히 유사해보이고, 매크로를 왜 쓰는 것이지? 할 수 있지만
다른 점은 분명히 존재한다.
함수는 하나의 개별 단위로 컴파일된 노드 모음이다. 또한 하나의 입력과 하나의 출력 만이 존재한다.
반면에 매크로는 노드용 템플릿이고, 다중 입력과 출력을 지원한다.
[함수]
- 컴파일 된 후 계속해서 호출할 수 있는 단일 단위를 나타낸다.
- Latent Node 들을 지원하지 않는다.
- 하나의 입력, 출력 와이어가 존재한다.
- 네트워크 게임에서 리플리케이트 될 수 있다.
[매크로]
- 노드들의 템플릿을 나타낸다. 그리고 실제로 컴파일 시간에 매크로의 위치가 실제 노드들로 대체된다.
- Latent Node 들을 지원한다.
- 여러개의 입력, 출력 와이어를 가질 수 있다.
- 리플리케이트 될 수 없다.
[블루프린트에서 함수 호출]
위와 같은 블루프린트 함수가 있다고 생각해보자.
그리고 블루프린트 그래프에서 위와 같이 연결하였을 경우, 이 로직은 함수를 다섯 번 호출하는 것이 된다.
[블루프린트에서 매크로 호출]
함수와 비슷하게 위와 같은 매크로가 있다고 생각해보자.
그리고 블루프린트 그래프에서 위와 같이 연결하였을 경우 이는 함수의 경우 처럼 매크로를 다섯 번 호출하는 것이 아니다.
컴파일 시에 실제로 매크로 부분이 전부 저렇게 대체가 되어서 들어간다고 보면 된다.
함수처럼 호출되어서 내부 동작을 실행하는게 아닌, 내부 동작 자체가 매크로 위치를 대체하게 되는 것이다.
'Game Engine > Unreal' 카테고리의 다른 글
(Unreal) File import to Asset (UFactory) (0) | 2023.03.21 |
---|---|
(Unreal) Editor 언어별 글꼴 (0) | 2023.03.21 |
(Unreal) Source Code Navigation (0) | 2022.10.11 |
(Unreal) Fasoo DRM으로 망가지는 언리얼 엔진 (0) | 2022.08.14 |
(Unreal) Events와 Multicast Delegates의 차이점에 대하여 (0) | 2022.08.06 |