Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- UnrealEngine5
- GeeksForGeeks
- UE5
- 오블완
- 1563
- RVO
- 팰린드롬 만들기
- C++
- softeer
- 티스토리챌린지
- NRVO
- 언리얼엔진5
- 줄 세우기
- Programmers
- UnrealEngine4
- winapi
- Unreal Engine5
- directx
- baekjoon
- 백준
- RootMotion
- algorithm
- C
- Frustum
- DirectX11
- IFileDialog
- 프로그래머스
- DeferredRendering
- 2294
- const
Archives
- Today
- Total
Game Develop
언리얼엔진에서의 컴파일 본문
언리얼엔진에서는 C++소스코드를 컴파일할 때, 언리얼 헤터툴에서 헤더파일을 분석하여 클래스의 메타정보를
UClass라는 특별한 클래스에 저장한다.
메타정보는 대략 언리얼오브젝트의 계층구조정보와 어떤 속성(멤버 변수) 및 함수들이 있는지를 나타낸다.
이 정보는 런타임시에 특정클래스를 검색하고 그 클래스의 속성이나 멤버함수를 호출하는 데 활용될 수 있다.
자바나 C#에서 활용하는 리플렉션기능을 C++에서 사용할 수 있게 하기 위해 언리얼에서 제공하는 형태라고 볼 수 있다.
컴파일이 완료되고 언리얼에디터를 실행시키면 UObject를 상속받는 언리얼오브젝트의 생성자에서 인스턴스를 생성하는데, 이를 클래스기본객체, 줄여서 CDO(Class Default Object)라고 지칭한다. 이 CDO는 언리얼오브젝트의 기본설정을 세팅하는데 사용된다.
정리하자면 C++클래스를 컴파일하면 먼저 언리얼오브젝트의 정보를 담은 UClass가 만들어지고, 후에 언리얼 에디터를 실행하면 생성자코드를 실행하여 클래스기본객체(CDO)인스턴스를 생성한다.
즉, 표준 C++과는 다르게 언리얼 엔진에서 생성자는 인스턴스를 초기화해 CDO를 만들기 위한 목적이 있다.
엔진에서는 인스턴스들을 생성할 때 매번 초기화시키지 않고 이 CDO들을 복제하여 생성한다.
'UnrealEngine5 > 이것저것' 카테고리의 다른 글
라인트레이스, 파티클 재생 (0) | 2022.10.08 |
---|---|
UMG 최적화에 대한 좋은 내용 (1) | 2022.09.26 |
뭔가 안된다 싶으면 블루프린트파일 삭제 후 재생성해보자. (0) | 2022.09.24 |
유용한 디버깅매크로함수 (호출함수명,라인 로그출력) (0) | 2022.09.22 |
Light Property (0) | 2022.09.20 |