WN_인생기록

[UE_5] FObjectInitializer란? 본문

언리얼 개발/탐구(이론)

[UE_5] FObjectInitializer란?

WhNi 2024. 4. 19. 22:54

내가 공부했던 강의에는 없었던거긴 했는데, 남들이 쓰는 코드 보면 이게 많이 컴포넌트 생성자에서 많이 보였다. 일반적으로 C++의 생성자는 객체의 인스턴스가 생성될때 호출되어 초기화를 진행하지만, 언리얼의 FObject는 내부 클래스에서 추가적인 초기화 작업을 수행한다. ObjectInitalizer는 엔진에 필요한 추가 설정을 완료하는 역할을 한다. 

즉) 객체의 초기화를 사용하는데 쓰인다고 보면 된다.(생성자에 대한 매개변수)

객체 초기화 리스트에 Super(매개변수)를 한다면 당연히 부모클래스의 생성자를 호출 후 부모클래스를 초기화 하는것.

 

그렇다면 이걸 초기화를 하고 안하고의 차이는 무엇일까

https://forums.unrealengine.com/t/do-i-have-to-use-fobjectinitializer-in-constructor/363383

 

Do I have to use FObjectInitializer in constructor?

I see some classes don’t have FObjectInitializer in their constructor, while others do. I wonder what the difference is here? Thanks, wcl1993

forums.unrealengine.com

 

구글 검색을 해보니 이런 차이가 있다고 한다.

" but some simple classes don’t really need that functionalities, and that is why, I think, Epic made an alternative constructor that has no parameter, just to make things simple and tidy. "  

 

기본적으로 있어야 하는건 맞지만, 간단한 초기화 설정 혹은 가벼운 것들이라면 안하는게 낫다고 한다.

 

 

 

 

 

 

'언리얼 개발 > 탐구(이론)' 카테고리의 다른 글

[UE_5] GAS란 무엇인가  (0) 2024.04.24
[UE_5] Slate가 뭘까  (0) 2024.04.22
[UE_5] GetOuter()  (0) 2024.04.20
[UE_5] 캐시란?  (0) 2024.04.20
언리얼의 기본 타입  (0) 2024.04.11