UE4 エディタ拡張・ウィジェットを変数として扱う・格納する(SAssignNew)
詳しい方法はロジカルビートさんの以下のブログを参考に!
・【UE4】エディタ拡張(インプットボックス編)
http://logicalbeat.jp/blog/875/
といった感じで、今まで 「SNew」を使っていた部分を「SAssignNew」に変更します。エディタで文字列や数値入力が出来るようになったので、
その入力値を使って他のウィジェットやゲーム内のパラメータに動的に反映できるようにしたいです。
そのためには、ウィジェットの値を取得・設定できる必要があります。
そこで、SAssignNewを使用してウィジェットを変数として保持し、
ウィジェットにアクセスできるように変更します。
使い方以下のような形で、今まで使用していたSNew()の部分を置き換えるだけです。
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↑