[UE] C++ TScriptInterfaceを関数の引数に設定することについて

BlueprintImplementableEvent、またはBlueprintNativeEventで
TScriptInterfaceを引数に設定する時、
ビルドが通る設定と通らない設定があるのでメモを残す。

ビルドが通る引数

    UFUNCTION(BlueprintPure, BlueprintImplementableEvent)
    void Interfaces1(
        /* Input */ const TScriptInterface<ITestInterfaceArgInterface>& InterfaceObjectInput,
        /* Output */TScriptInterface<ITestInterfaceArgInterface>& InterfaceObjectOutput
    );

「const」と「&」を付けるとビルドが通る。

ビルドが通らない引数

    UFUNCTION(BlueprintPure, BlueprintImplementableEvent)
    void Interfaces4(
        /*Input*/ TScriptInterface<ITestInterfaceArgInterface> InterfaceObjectInput,
        /*Output*/ TScriptInterface<ITestInterfaceArgInterface>& InterfaceObjectOutput
    );

InterfaceObjectInputのところでビルドエラーが出る。
理由は詳しく調べません。

参考文献

編集後記

あいこま

TScriptInterfaceは引数にできないと思い込んでいたので
もっと早く知りたかった…