0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【UE4】Editor Utility WidgetをC++から起動する

Posted at

書いてるときに あけてました おめでとう

UE4いじり初めて1年ちょっと・・・ かな・・・?
そのレベルの人が色々調べてやってみたことを適当にメモっておくよ


Editor Utility Widgetでエディタ拡張がすっごい作りやすくなったけど
そのUIを起動するときに一々アセットを右クリックしてやったり分かりにくいメニューから起動するのってなんかね

自分で追加したメニューから起動したいやん?

ってことで
UIをC++から起動する方法のメモ

ちなみにUE4.24.1でのみ確認してます。

独自のメニューを追加

http://historia.co.jp/archives/370/
みんな大好きヒストリアさんのところがおすすめだぞ。

Editor Utility WidgetでUIを作成

https://qiita.com/EGJ-Kaz_Okada/items/9f530db3b53d0fde3f20
おかずさんのところがおすすめだぞ。

C++でEditor(略を表示する

ここからが本番

まずはアセットをロードする。


auto WidgetBlueprint = LoadObject<UBlueprint>(NULL, TEXT("パス"), NULL, LOAD_None, NULL);

普通にUBlueprintで読み込んでおけばOK

それをUEditorUtilityWidgetクラスにキャスト


TSubclassOf<UEditorUtilityWidget> WidgetClass = (TSubclassOf<UEditorUtilityWidget>)WidgetBlueprint->GeneratedClass;

そしてこれを使ってCreateWidgetする


UWorld* World = GEditor->GetEditorWorldContext().World();
UEditorUtilityWidget* CreatedUMGWidget = CreateWidget<UEditorUtilityWidget>(World, WidgetClass);

んで生成できたらSWindowにSetContentする


Window->SetContent(CreatedUMGWidget->TakeWidget());
MyWindow.Pin()->BringToFront(); // 最前面へ

たったこれだけで独自のメニューからEditor Utility Widgetで作ったUIを起動できるようになる。

まぁ こんなことしなくてもメニューに追加されはするので
あくまでもわかりやすくするためだぁね

クラス設定とかからこのメニュー名設定できれば良いんだけど
さらに強いて言うなら
Unityのエディタ拡張みたいな感じでやれれば良いんだけどね・・・

まぁ しゃーない

っと こんな感じで
書ける範囲で色々書いていけると良いな

では ノシ

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?