Etc/Test

언리얼엔진 SetRootComponent RootComponent 차이

김컴맹 2023. 4. 3. 10:29
반응형

언리얼 엔진 5.1 버전 기준으로 "SetRootComponent(target)"과 "RootComponent = target"의 차이는 다음과 같습니다.

"SetRootComponent(target)"는 RootComponent를 target으로 설정하고, 주어진 RootComponent가 이미 존재하는 경우 기존의 RootComponent를 제거하고 새로운 콤포넌트로 바꿉니다.

반면에 "RootComponent=target" 구문은 오직 런타임 중에만 동작하며, 생성자에서 사용할 수 없습니다. 클래스 정의에서 이 구문을 사용할 경우, 이 생성자가 인스턴스화되어 클래스 오브젝트가 만들어질 때마다 RootComponent를 target으로 설정합니다. 이는 기존의 RootComponent를 제거하고 바꿉니다.

결론적으로, "SetRootComponent(target)"와 "RootComponent=target"는 목적이 다르며, 전자는 런타임에서 사용할 수 있으며 현재의 RootComponent를 대체하는 데 사용되고, 후자는 생성자에서 사용할 수 없으며 클래스 정의에서만 사용할 수 있으며 클래스 오브젝트의 루트 컴포넌트를 설정하는 데 사용됩니다.

 

 

 

Q. 기존에 이미 "RootComponent"가 존재해서 교체되게 된다면, 기존의 "RootComponent"에 "SetupAttachment" 되어있던 레퍼런스나 참조정보들은 그대로 옮겨지나?

 

A. ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​"SetRootComponent(target)"를 사용하여 기존의 "RootComponent"를 새로운 컴포넌트로 대체하는 경우, 기존 "RootComponent"의 "AttachChildren"은 모두 새로운 "RootComponent"로 옮겨집니다. 그러나 "SetupAttachment"를 사용하여 기존 "RootComponent"에 부착된 레퍼런스 또는 참조 정보는 새로운 "RootComponent"에 대하여 재설정되지 않습니다. 

따라서 "SetRootComponent(target)"를 사용하여 "RootComponent"를 교체하는 경우 애셋의 구조가 변형될 수 있으므로 주의가 필요합니다. 구조가 변형되면, 기존에 "SetupAttachment"를 사용해 부착했던 다른 컴포넌트는 컴파일 오류를 유발할 수 있습니다. 이런 문제를 방지하기 위해서는 "SetRootComponent(target)"를 사용하여 "RootComponent"를 교체하기 전에 레퍼런스나 참조 정보를 업데이트하는 것이 좋습니다.

반응형

'Etc > Test' 카테고리의 다른 글

중국음악의 스케일 화성  (0) 2023.04.04
DirectX 11 DirectX 12 차이점  (0) 2023.04.03
com.oracle.bmc.model.BmcException  (0) 2023.03.21
Spring 스케줄링 방법  (0) 2023.03.20
BasicResponseHandler HandleResponse(HttpResponse)  (0) 2023.03.20