I’m in the process of updating all UPROPERTY() pointer references to use TObjectPtr<> and I’ve ran into a seemingly simple issue I’m not quiet sure how to resolve.
Not a 100% sure but I think it has to due with how unreal handles reflections.
It’s an optional lazy load object so it has it’s own life cycle. If you’d expose it to blueprints via the UFUNCTION macro then I think that collides with the blueprints life cycle.
It’s an ongoing problem that you can see pops up from time to time on the forum. I hope Epic final addresses it in the future.
Edit:
Perhaps using TSoftObjectPtr and manual resolving it upon request inside of the return function could be an option