It looks like FDynamicOutputHelper::IsTypePickerPin and FDynamicOutputHelper::GetTypePickerPin need to be updated to support soft references.
Create a new C++ class with the following code:
UCLASS() class UTestFunctionLibrary : public UBlueprintFunctionLibrary { GENERATED_BODY() // OK UFUNCTION(BlueprintCallable, meta=(DeterminesOutputType="Class")) static UObject* TestClass(const TSubclassOf<UObject>& Class) { return nullptr; } // NG UFUNCTION(BlueprintCallable, meta=(DeterminesOutputType="Asset")) static UObject* TestAssetPtr(const TAssetPtr<UObject>& Asset) { return nullptr; } // NG UFUNCTION(BlueprintCallable, meta=(DeterminesOutputType="AssetClass")) static TSubclassOf<UObject> TestAssetClass(const TAssetSubclassOf<UObject>& AssetClass) { return nullptr; } };
And after compiling and starting the editor, try placing the nodes TestClass, TestAssetPtr, and TestAssetClass in a Blueprint.
Expected: All three change the output type to match the type of the input parameter as it is changed.
Actual: Only TestClass works as expected
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-47982 in the post.
5 |
Component | UE - Gameplay - Blueprint Compiler |
---|---|
Affects Versions | 4.17, 4.18 |
Target Fix | 4.26 |
Created | Aug 2, 2017 |
---|---|
Resolved | May 19, 2020 |
Updated | Oct 16, 2020 |