I have a UActorComponent implementation in C++ that has UPROPERTYs pointing to other UActorComponents.
In the editor, those UPROPERTYs show up, but are not assignable, even though the properties are marked with EditAnywhere
and BlueprintReadWrite
, e.g.
UPROPERTY(Category = Spine, EditAnywhere, BlueprintReadWrite)
UMyCustomComponent* MyComponent;
Interestingly enough, I also have custom asset classes that derrive from UObject
, which I can set on UPROPERTYs in the editor just fine, e.g.
UCLASS(ClassGroup=(Spine))
class SPINEPLUGIN_API USpineSkeletonDataAsset: public UObject { ... }
// then in one of my custom components
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Spine)
USpineSkeletonDataAsset* SkeletonData;
What I’d like to be able to do is:
- Add my custom component of type A (written in C++) to an actor that has a UPROPERTY of type B (another customer component written in C++)
- Add another custom component of type B to the same actor
- In the Details View in the editor, set B on A’s UPROPERTY of type B
When I try to set this up, the detail view of component A will show me the entry for the UPROPERTY of type B, but when I try to assign the component of type B to that UPROPERTY, the editor doesn’t let me. Neither does it propose the B component in the search field, nor can I drag and drop the component.
I’ve tried all kinds of macro annotations, but no dice. Am I getting something conceptually wrong here?