Unreal은 기본적으로 16bit wav 파일만을 인식
이 때 파일은 Sound Wave라고 하며 이 자체로도 Sound 출력에는 문제가 없음
원본인 Sound Wave를 Reference하는 객체
Sound Wave의 유용한 조작 지원
공식 문서에 따르면 공간화, 거리 감쇠 등의 기능도 존재
Sound를 카테고리 단위로 제어
Sound Ducking 등 여러 Sound의 소리 크기를 조절할 수 있음
1개의 Level은 다수의 SubLevel로 구성될 수 있으며, 각각의 SubLevel은 필요에 의해 Loading되어 최적화에 도움을 준다거나 주제별로 제작되어 Light Map, Object Map같은 용도로 사용될 수 있음
SaveGame Object에 저장하고자 하는 데이터를 Save-Load하는 방식
그냥 유연한 구조체에 필요한 데이터를 저장 후 문자열 입출력 방식으로 Save-Load하는 것으로 생각하면 될 듯
일반적으로 Plugin하면 추가 기능, 엔진 수정같은 용도로 생각하는데, 그 외에 코드 재사용 등의 용도로도 사용이 가능한 듯
이를 이용해 Team Project시 Code Merge를 쉽게 진행할 수 있을 듯
Unreal의 HLSL은 Low Level에서부터 전부 다 구현하거나 Unreal의 Template을 따라야 한다고 함
전자의 경우 Unreal을 사용하는 이유가 없고 후자의 경우 추가적으로 공부해야 할 것이 많아질 듯
대리자
지정된 함수를 대신 수행하는 역할
C++에는 Delegate라는 개념이 없는데, 이와 유사한 개념으로 Function Pointer가 있음
외부의 Function을 지정해서 사용한다는 공통점을 갖지만 Delegate는 객체, Type 그 자체이고 Function Pointer는 Pointer라는 차이점이 있음
호출 시 Dispatcher에 Binding된 행동(Function)을 수행
Unreal에서는 Dispatcher에 Binding된 모든 Event를 호출함
외부에서 지정된 행동을 수행한다는 점에서 Delegate와 Dispatcher가 유사하게 보일 수 있음
Delegate의 경우 Type의 일종으로 행동을 수행함에 responsibility를 갖음
Dispatcher의 경우 행동을 수행하는 resposibility를 갖지 않고, 그저 Event의 발생 여부를 전달해주는 역할, 실질적인 행동의 responsibility는 Binding된 객체에서 수행
표준 문서를 보면 Drag & Drop을 위해 On Mouse Button Down을 사용하기를 권장한다
다만 아래 문서를 보면 OnClicked를 호출시키지 않기 위해 On Preview Mouse Button Down을 사용하고 있다
차이를 확인하기 위해 OnClicked와 On Preview Mouse Button Down을 지운 후 Drag를 실행해보면 On Mouse Button Down이 정상적으로 호출되지 않는다.
표준 문서의 예제를 직접 구현해본 결과 정상적으로 작동하는 것을 확인
학원 예제와의 차이점을 찾아봐야 할듯