凛(kagring)のUE4とUnityとQt勉強中ブログ

2016 年から UE4 を触り始めました。勉強したもののメモ用のブログです。C++ での Qt、Unity も少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE4 エディタ拡張・ウィジェットを変数として扱う・格納する(SAssignNew)

ウィジェットを変数として扱えるようにして、ウィジェット同士の連携をとったりする方法です。
詳しい方法はロジカルビートさんの以下のブログを参考に!

・【UE4】エディタ拡張(インプットボックス編)
http://logicalbeat.jp/blog/875/

エディタで文字列や数値入力が出来るようになったので、
その入力値を使って他のウィジェットやゲーム内のパラメータに動的に反映できるようにしたいです。
そのためには、ウィジェットの値を取得・設定できる必要があります。
そこで、SAssignNewを使用してウィジェットを変数として保持し、
ウィジェットにアクセスできるように変更します。
使い方以下のような形で、今まで使用していたSNew()の部分を置き換えるだけです。

といった感じで、今まで 「SNew」を使っていた部分を「SAssignNew」に変更します。

SNew は「SNew(型名)」でしたが
SAssignNew は「SAssignNew(変数名、型名)」となります。

SNew(SSpinBox< float>)

といったものが

TWeakPtr< SSpinBox< float> > mSpinBoxWidget;
SAssignNew(mSpinBoxWidget, SSpinBox< float>)


といった記述になります。

TWeakPtr< SEditableTextBox> mEditableTextBox;
~省略
+SVerticalBox::Slot()
.AutoHeight()
[
SAssignNew(mEditableTextBox, SEditableTextBox)
.Text(LOCTEXT("EditText", "SEditableTextBox"))
]

こんな感じですね。

変数にしたウィジェットでのアクセスの方法はこんな感じになります。

変数.Pin()->関数()

TWeakPtr< SSpinBox< float> > mSpinBoxWidget;
mSpinBoxWidget.Pin()->SetValue(1234.5f);

こんな感じで関数にアクセスすることができます。

エディタ拡張するにあたっては必須になりそうですね。
スポンサーサイト

| UE4 | 16:23 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/256-a4548c60

TRACKBACK

PREV | PAGE-SELECT | NEXT