У меня есть моя нода uk2node, которая принимает структуру, получает ее и класс, к которому нужно привести возвращаемое нодой значение. Но объект для возврата из ноды я получаю из функции GetScen, а она принимает параметры класса и структуры, которые являются членами моего класса obj и objclass. Как мне передать эти свойства в параметры моей функции при вызове ноды внутри кода? Без создания новых пинов!

void UCustomK2Node::AllocateDefaultPins()
{
// Add execution pins
CreatePin(EGPD_Input, UEdGraphSchema_K2::PC_Exec, UEdGraphSchema_K2::PN_Execute)->PinName = "lol";

CreatePin(EGPD_Output, UEdGraphSchema_K2::PC_Exec, UEdGraphSchema_K2::PN_Then)->PinName = "nelol";

CreatePin(EGPD_Input, UEdGraphSchema_K2::PC_Struct, FPathToScenarioObject::StaticStruct(), "Path");

CreatePin(EGPD_Output, UEdGraphSchema_K2::PC_Object, UObject::StaticClass(), FeaturePinName);

Super::AllocateDefaultPins();
}

void UCustomK2Node::PinConnectionListChanged(UEdGraphPin* Pin)
{
Super::PinConnectionListChanged(Pin);

if ( Pin->HasAnyConnections() && Pin->Direction == EEdGraphPinDirection::EGPD_Input &&
Pin->PinType.PinCategory == UEdGraphSchema_K2::PC_Struct )
{
const auto GetterVarNode = Cast(Pin->LinkedTo[0]->GetOwningNode());


UBlueprint* const OwningBlueprint = FBlueprintEditorUtils::FindBlueprintForNode(GetterVarNode);

const FName VarName = GetterVarNode->VariableReference.GetMemberName();

UClass* const GeneratedClass = OwningBlueprint->GeneratedClass;

UObject* const CDO = GeneratedClass->GetDefaultObject();

FProperty* const Property = FindFProperty<FProperty>(GeneratedClass, VarName);

if ( !Property )
{
    return;
}

FStructProperty* const StructProperty = CastField<FStructProperty>(Property);

if ( !StructProperty )
{
    return;
}

void* StructData = StructProperty->ContainerPtrToValuePtr<void>(CDO);

Obj = *StaticCast<FPathToScenarioObject*>(StructData);

if ( Obj.Path.IsEmpty() )
{
    return;
}

ObjClass = Cast<UScenarioObject>(Obj.Path.Last().Storage)->Classes;

FindPin(FeaturePinName)->PinType.PinSubCategoryObject = ObjClass;
}
}
void UCustomK2Node::ExpandNode(FKismetCompilerContext& CompilerContext, UEdGraph* SourceGraph)
{
Super::ExpandNode(CompilerContext, SourceGraph);

UEdGraphPin* ExecPin = FindPin(TEXT("lol"));
UEdGraphPin* ThenPin = FindPin(TEXT("nelol"));
UEdGraphPin* OutputPin = FindPinChecked(FeaturePinName);

UK2Node_CallFunction* CallFunctionNode = CompilerContext.SpawnIntermediateNode(this, SourceGraph);

CallFunctionNode->FunctionReference.SetExternalMember(GET_FUNCTION_NAME_CHECKED(UCustomK2Node, GetScen), UCustomK2Node::StaticClass());

CallFunctionNode->AllocateDefaultPins();

auto strvalue = CallFunctionNode->FindPin(TEXT("str"));

CompilerContext.MovePinLinksToIntermediate(*ExecPin, *CallFunctionNode->GetExecPin());
CompilerContext.MovePinLinksToIntermediate(*ThenPin, *CallFunctionNode->GetThenPin());

UEdGraphPin* FunctionResultPin = CallFunctionNode->GetReturnValuePin();
CompilerContext.MovePinLinksToIntermediate(*OutputPin, *FunctionResultPin);

BreakAllNodeLinks();
}

UObject* UCustomK2Node::GetScen(const FPathToScenarioObject& str, TSubclassOf cls, UObject* WorldContextObject)
{
if ( WorldContextObject->GetWorld() )
{
const auto System = WorldContextObject->GetWorld()->GetGameInstance()->GetSubsystem();


return System->GetActorFromScenario(cls, str);
}
return nullptr;
}
пиши на русском, пожалуйста