When I customize K2Node, the return value cannot be connected to the pin obtained by breakStruct. I customized a pin of type EGPD_Output to output a variable after a custom structure is brokenStructed. However, after I get the specified pin, the final output pin and the obtained pin are both of output type, so they cannot be connected. Is there any solution?
`
void UK2Node_GetStatusData::ExpandNode(class FKismetCompilerContext& CompilerContext, UEdGraph* SourceGraph)
{
Super::ExpandNode(CompilerContext, SourceGraph);
const UEdGraphSchema_K2* Schema = CompilerContext.GetSchema();
UK2Node_CallFunction* const function = CompilerContext.SpawnIntermediateNode<UK2Node_CallFunction>(this, SourceGraph);
function->FunctionReference.SetExternalMember(GET_FUNCTION_NAME_CHECKED(UStatus, GetCharStatus), UStatus::StaticClass());
function->AllocateDefaultPins();
CompilerContext.MovePinLinksToIntermediate(*StatusPin(), *(function->FindPinChecked(TEXT("self"))));
// Break the struct
UK2Node_BreakStruct* breakStruct = CompilerContext.SpawnIntermediateNode<UK2Node_BreakStruct>(this, SourceGraph);
breakStruct->StructType = FCharacterStatus::StaticStruct();
breakStruct->AllocateDefaultPins();
breakStruct->ExpandSplitPins(CompilerContext, SourceGraph);
UEdGraphPin* structInput = breakStruct->FindPinChecked(FCharacterStatus::StaticStruct()->GetFName());
CompilerContext.MovePinLinksToIntermediate(*function->GetReturnValuePin(), *structInput);
UEdGraphPin* structOutputPin = breakStruct->FindPinChecked(PropertyNamePin()->GetDefaultAsString());
CompilerContext.MessageLog.NotifyIntermediateObjectCreation(breakStruct, this);
ReturnValuePin()->MakeLinkTo(structOutputPin);
BreakAllNodeLinks();
}
`