I’m trying to implement a sort of dungeon generator and I’m facing some issue adding the components in runtime.
I have an actor class which has a spline component. The actor´s root and the spline are movables (componentMovility) and when I try to add a spline mesh component the Editor show this warning (but works properly):
AttachTo: ‘/Game/Maps/UEDPIE_0_TestMap.TestMap:PersistentLevel.CorridorBP_C_0.CorridorRoot’ is not static (in blueprint “CorridorBP”), cannot attach ‘/Game/Maps/UEDPIE_0_TestMap.TestMap:PersistentLevel.CorridorBP_C_0.SplineMeshComponent_0’ which is static to it. Aborting.
I suppose that it means that I can’t attach a static component (spline mesh) to a movable component (actor root)… ok I change the movibility of the mesh component to movable: No warning but it does not work. I change the root and the spline to static: no warning but it does not work either.
When I say it doesn’t works that means the spline mesh components are no following the spline. They are located around the scene.
Spline creation code:
USplineComponent* splineCmp = NewObject<USplineComponent>(this); splineCmp->AttachToComponent(RootCmp, FAttachmentTransformRules::KeepRelativeTransform); splineCmp->SetWorldRotation(Direction.ToOrientationRotator()); splineCmp->RegisterComponent();
Spline Mesh creation code:
USplineMeshComponent* SplineMeshCmp = NewObject<USplineMeshComponent>(this); SplineMeshCmp->RegisterComponent(); SplineMeshCmp->SetCollisionEnabled(ECollisionEnabled::NoCollision); SplineMeshCmp->AttachToComponent(RootCmp, FAttachmentTransformRules::KeepRelativeTransform); int Index = FMath::RandRange(0, WallTileList.Num() - 1); SplineMeshCmp->SetStaticMesh(WallTileList[Index]); SplineMeshCmp->SetForwardAxis(ESplineMeshAxis::X); FVector IniPos, IniTangent, EndPos, EndTangent; splineCmp->GetLocationAndTangentAtSplinePoint(i, IniPos, IniTangent, ESplineCoordinateSpace::World); splineCmp->GetLocationAndTangentAtSplinePoint(i + 1, EndPos, EndTangent, ESplineCoordinateSpace::World); SplineMeshCmp->SetStartAndEnd(IniPos, IniTangent, EndPos, EndTangent, true);
In Addition, sometimes (without a specific pattern) the engine trigger an exception but If I continue from visual studio the project runs but some instanced meshes are not drawn and collisions does not work very well.
Any idea to remove those warnings??