‘Component’ is not static, cannot attach ‘Component’ which is static to it.

개요

언리얼 프로젝트를 진행하면서 하루는 SplineMeshComponent 를 런타임에 생성해야 할 일이 있었습니다.

그래서 오브젝트를 생성하고 Attach 를 해주고 Register 를 해주고 Mobility 를 변경해주었습니다. 그리고 실행해보니 Warning 로그가 오브젝트를 생성할 때마다 올라왔습니다.

Warning PIE AttachTo: 'DefaultSceneRoot' is not static  (in blueprint "BP_*****"), cannot attach 'SplineMeshComponent' which is static to it. Aborting.

해결 방법

관련 정보를 찾아보니 연결하려는 부모자식간의 Mobility가 일치하지 않아서 생기는 문제였습니다. 확인해 보니 Mobility를 설정해 주긴 하는데 문득 든 생각이 AttachToComponent 를 호출하기 전에 설정을 해줘야 하지 않을까 했고 아니나 다를까 함수 호출 순서를 변경해주니 문제 없이 돌아갔습니다.

SplineMesh = NewObject<USplineMeshComponent>(this);
SplineMesh->SetMobility(EComponentMobility::Movable);
SplineMesh->AttachToComponent(Breadcrumbs[i]->GetRootComponent(), FAttachmentTransformRules::KeepWorldTransform);

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *