언리얼엔진 Flashcards

1
Q

Q1) 리플렉션(reflection)에 대해 설명해보세요.

A

프로그램이 실행시간 (런타임)에 자기 자신 (클래스, 구조체, 함수, 멤버 변수, 열거형 등)을 조사하는 기능으로, 에디터의 디테일 패널, 시리얼라이제이션 (직렬화), 가비지 컬렉션, 네트워크 리플리케이션, 블루 프린트 / C++ 커뮤니케이션 등 언리얼 엔진의 다양한 시스템이 탑재된 것 입니다.
이는’리플렉션’이라는 단어가 ‘반사’라는 그래픽 용어와 혼돈 빚을 수 있어 ‘ 프로퍼티 시스템’이라
칭하기도 합니다.
해당 기능을 사용하기 위해서는 ‘generated.h’ (#include FileName.generated.h)를 추가해야 하며, 해당 헤더는 맨 마지막에 선언하는것이 안정적입니다.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Q2) 언리얼 엔진에서 리플렉션을 어떤 방식으로 구현하는 지 간략히 설명해보세요.

A
  1. UBT가 리플렉션 메타데이터를 탐색합니다.
  2. UHT가 .h와 .cpp를 파싱합니다.
  3. 리플렉션 데이터를 바이트 코드로 생성합니다.
  4. 생성된 바이트 코드에 C++ 코드인 .generated.h / .cpp를 작성합니다.
  5. 빌드 시 기존 코드에 .generated.h 코드를 추가하여 컴파일합니다.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly