本来想写一个批量控制widget开关的接口,想写一个像append一样的可加pin的接口

首先还是找到这个接口得代码

可以看到关键的点就是 CommutativeAssociativeBinaryOperator = "true" 就是这个,标记这个接口是可以加pin的。 接下来就是照着写一下接口

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "Styling/SlateTypes.h"
#include "Components/Widget.h"
#include "ExtraBlueprintFunctionHelper.generated.h"

/**
 * 
 */
UCLASS()
class CLIENT_API UExtraBlueprintFunctionHelper : public UBlueprintFunctionLibrary
{
	GENERATED_BODY()

public:
	UFUNCTION(BlueprintCallable, meta = (DisplayName = "SetBatchVisiable", CommutativeAssociativeBinaryOperator = "true"), Category = "UExtraBlueprintFunctionHelper")
	static UWidget* SetBatchVisiable(UWidget* objA, UWidget* objB);
	
	
};

这里有几个要注意的地方: 1.用了CommutativeAssociativeBinaryOperator这个标记为可拓展的话,返回值类型和传的参数类型要一致 2.如果要带流程线的话,就不能用BlueprintPure,要用BlueprintCallable 3.如果用了BlueprintCallable,那么又不能加pin了。。。 就是要不是这样 要不是这样

所以,失败了。。。