UE5/UE4 C++でBP(Blueprint)に公開する関数を関数指定子(UFunction)を使って「protected」扱いで制御する(UFUNCTION(meta=BlueprintProtected))
C++でBP(Blueprint)に公開する関数を関数指定子(UFunction)を使って「protected」扱いで制御する方法です。
こちらを参考にさせていただきました。
・【UE5】ブループリント公開の関数を protected 扱いにする
https://shuntaendo.hatenablog.com/entry/2022/04/21/184426
公式ドキュメントはこちら。
・UFunction(関数指定子)
https://docs.unrealengine.com/4.27/ja/ProgrammingAndScripting/GameplayArchitecture/Functions/
「UFUNCTION(meta=BlueprintProtected)」を記述することでBPにおいても「protected」扱いとなるようです。
こんな感じで記述してみました。
結果はこんなかんじになりました。
まずは関数を作成した自身のBPで関数を使えるか確認しました。

自身に対してなので両方の関数が確認できます。
次に、レベルBPで使えるかどうかを確認してみました。

こちらは通常のC++での「protected」記述の方の関数は確認できてしまっています。
「UFUNCTION(meta=BlueprintProtected)」を付けたほうは、ちゃんと確認できないようになっているようです。
厳密に扱いたい場合はちゃんと関数指定子を使うのがよさそうですね。
こちらを参考にさせていただきました。
・【UE5】ブループリント公開の関数を protected 扱いにする
https://shuntaendo.hatenablog.com/entry/2022/04/21/184426
公式ドキュメントはこちら。
・UFunction(関数指定子)
https://docs.unrealengine.com/4.27/ja/ProgrammingAndScripting/GameplayArchitecture/Functions/
「UFUNCTION(meta=BlueprintProtected)」を記述することでBPにおいても「protected」扱いとなるようです。
こんな感じで記述してみました。
protected:
UFUNCTION(BlueprintCallable, meta = (BlueprintProtected))
void FunctionProtected1();
UFUNCTION(BlueprintCallable)
void FunctionProtected2();
結果はこんなかんじになりました。
まずは関数を作成した自身のBPで関数を使えるか確認しました。

自身に対してなので両方の関数が確認できます。
次に、レベルBPで使えるかどうかを確認してみました。

こちらは通常のC++での「protected」記述の方の関数は確認できてしまっています。
「UFUNCTION(meta=BlueprintProtected)」を付けたほうは、ちゃんと確認できないようになっているようです。
厳密に扱いたい場合はちゃんと関数指定子を使うのがよさそうですね。
| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑