1. 程式人生 > >【unity實用技能】記一次失敗的藍圖接口開發失敗經驗

【unity實用技能】記一次失敗的藍圖接口開發失敗經驗

返回值 。。 cat you 值類型 fff nts cor oci

本來想寫一個批量控制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了。。。
就是要不是這樣
技術分享圖片
要不是這樣

技術分享圖片

所以,失敗了。。。

【unity實用技能】記一次失敗的藍圖接口開發失敗經驗