Hi Josh!
Thanks for reaching out.
You’re on the right path - conditionals are objects that either evaluate to true or false and broadcast a delegate when their value changes. You can connect multiple conditionals together to create complex boolean logic.
In this case, the IsdkRayInteractionComponent that sits on top of the IsdkHandRigComponent you’ve created has an IsdkConditionalGroupAll property “EnabledConditionalGroup” that drives whether the IsdkRayInteractor is active or not.
The intended way of disabling an interactor is to add an IsdkConditionalBool to the EnabledConditionalGroup via the AddConditional method, and use the SetValue method on the IsdkConditionalBool to drive the interactor component being active/deactivated.
Looking now, it seems that the SetValue method of IsdkConditionalBool isn’t exposed to Blueprint at this time. I’ve raised this issue to the team and we’ll make sure that gets fixed.
If you’re able to work with C++, you can still take the route above. If you’re only able to access Blueprint, I do see a potential workaround for you.
I notice that IsdkConditionalComponentIsActive is fully exposed to Blueprint. The way this conditional works is that you set a component that the conditional observes. When that component is active, the conditional evaluates to true. Otherwise it evaluates to false.
That said, you should be able to:
- Create a new Scene component and name it “RayActivator”
- On BeginPlay, create a Construct Object From Class node
- Set the Class pin to IsdkConditionalComponentIsActive
- Drag the return value pin to a Promote to Variable node and name the variable “RayConditional”
- Call SetComponent on the RayConditional variable
- Set the InActorComponent pin to the RayActivator component
- Drag out a reference to your IsdkHandRigComponent. From there, drag out a Get RayInteraction node, and from that drag out a GetEnabledConditional node. From that node, drag out an AddConditional node and set the InConditional pin to RayConditional
- Now, whenever you want to deactivate ray, call Deactivate on RayActivator. Whenever you want to activate ray, call Activate on RayActivator.
Again, this is just a workaround, and we’ll make sure to get a proper fix in for SetValue not being exposed to blueprint.
Thanks again for your post, let me know if there’s any more information I can provide.