fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE5/UE4 C++で「const」を付けた関数が自動的に「Pure関数」になってしまうのを関数指定子(UFunction)を使って防ぐ(UFUNCTION(BlueprintPure = false))

C++で「const」を付けた関数が自動的に「Pure関数」になってしまうのを関数指定子(UFunction)を使って防ぐ方法です。

こちらを参考にさせていただきました。

・【UE5】const関数をPure扱いにしない方法
https://shuntaendo.hatenablog.com/entry/2022/04/21/184426

公式ドキュメントはこちら。

・UFunction(関数指定子)
https://docs.unrealengine.com/4.27/ja/ProgrammingAndScripting/GameplayArchitecture/Functions/

「const」を付けていない関数を「Pure関数」にするのに「UFUNCTION(BlueprintPure)」を使いましたが、
逆に「Pure関数」にしないようにするためには「UFUNCTION(BlueprintPure = false)」と記述するようです。
というわけでこんな感じで2種類用意しました。

UFUNCTION(BlueprintCallable)
int32 GetPureValue1() const;
UFUNCTION(BlueprintCallable, BlueprintPure = false)
int32 GetPureValue3() const;

上は通常の「const」のみ記述した関数で、
下は「UFUNCTION(BlueprintPure = false)」を記述した関数になります。

結果はこんな感じになりました。
通常の「const」を付けた関数は「Pure関数」になりました。
Pure関数作成000

「UFUNCTION(BlueprintPure = false)」を記述した「const」を付けたの関数は「Pure」関数ではなくなりました。
Pure関数強制解除000

処理のフローや回数によって使い分けるのが良いのかなと思います。

| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/717-6589c96f

TRACKBACK

PREV | PAGE-SELECT | NEXT