So the following used to work in 4.12.
FConstraintInstance ConstraintInstance;
Now that I have upgraded the project to 4.14, when I create a FConstraint Instance I get the error message, “incomplete type is not allowed.”
Also my UPhysicsContraintComponent gives me a ton of “pointer to incomplete class type is not allowed” error messages.
I’m guessing they may have to be initialised differently now?
My Declaration
UPROPERTY(EditAnywhere)
UPhysicsConstraintComponent* PConstrain;
My Definition
//Setting the constraint parameters of our Constraint Instance
//Limiting the linear motion, Setting the limit size and setting the soft limit to true. Disabling Breakable option in order to ensure we get a rope kind of tug
//ConstraintInstance.LinearXMotion = ELinearConstraintMotion::LCM_Limited;
//ConstraintInstance.LinearYMotion = ELinearConstraintMotion::LCM_Limited;
//ConstraintInstance.LinearZMotion = ELinearConstraintMotion::LCM_Limited;
ConstraintInstance.LinearLimitSize = 10.0f;
ConstraintInstance.bLinearLimitSoft = true;
ConstraintInstance.bLinearBreakable = false;
//Setting the linear soft limit, the stiffness and the damping
ConstraintInstance.bLinearLimitSoft = 0;
ConstraintInstance.LinearLimitStiffness = 0;
ConstraintInstance.LinearLimitDamping = 10;
ConstraintInstance.bAngularBreakable = false;
//ConstraintInstance.AngularSwing1Motion = EAngularConstraintMotion::ACM_Limited;
//ConstraintInstance.AngularSwing2Motion = EAngularConstraintMotion::ACM_Limited;
//ConstraintInstance.AngularTwistMotion = EAngularConstraintMotion::ACM_Locked;
//Initialising a Physics Constraint Component
PConstrain = CreateDefaultSubobject<UPhysicsConstraintComponent>(TEXT("Physics Constraint Component"));
PConstrain->AttachToComponent(CrainSlider, FAttachmentTransformRules::KeepRelativeTransform, NAME_None);
PConstrain->ConstraintInstance = ConstraintInstance;
PConstrain->SetConstrainedComponents(CrainSlider, NAME_None, CrainWire, NAME_None);