fc2ブログ

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

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

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE4 エディタ拡張・テキストブロック(ラベル)ウィジェット(STextBlock)

テキストブロックウィジェットについてのメモです。
他ではよく「ラベル」と呼んでいるコントロールですね。

ロジカルビートさんのこのページとエンジンのソースとにらめっこしていました。

・【UE4】エディタ拡張(ラベル編)
http://logicalbeat.jp/blog/733/

テキストブロックウィジェットを使うには「STextBlock」クラスを使います。

FText WidgetText = FText::Format(
LOCTEXT("WidgetText", "STextBlock。コミケまであと {0}日と{1}時間{2}分\nどうもFText::Formatは引数が4つまでしかいけなさそう。\n文字列操作にはFStringを使おう!"),
FText::FromString(FString::FromInt(Days)),
FText::FromString(FString::FromInt(Hours24)),
FText::FromString(FString::FromInt(Minutes))
);
~省略
SNew(SVerticalBox)
+ SVerticalBox::Slot()
.AutoHeight()
[
SNew(STextBlock)
.Text(WidgetText)
.Font(FSlateFontInfo("Veranda", 16))
.ColorAndOpacity(FSlateColor(FLinearColor(1.0f, 1.0f, 0.0f, 1.0f)))
.ShadowOffset(FVector2D(2.0f, 2.0f))
.HighlightColor(FLinearColor(0.0f, 1.0f, 1.0f))
.HighlightText(LOCTEXT("HighlightText", "FText::Format"))
.AutoWrapText(true)
.Margin(FMargin(16, 16, 16, 16))
.OnDoubleClicked_Raw(this, &FUtilityModule::OnDoubleClickedButtonLabel)
]
~省略
FReply FUtilityModule::OnDoubleClickedButtonLabel()
{
return FReply::Handled();
}

雑ですがこんな感じの記述になります。
結果はこんな感じに。
STextBlock000.png

STextBlock の各プロパティの機能はこんな感じになります。

・Text
表示文字列です。FText 型で指定します。
・Font
表示する文字列のフォントです。
FSlateFontInfo 型を使って、フォント名とフォントサイズを指定します。
・ColorAndOpacity
表示する文字列の色です。
FSlateColor 型で指定します。
・ShadowOffset
フォントにドロップシャドウを付ける場合のオフセット(xy)を指定します。
FVector2D 型で指定します。
・HighlightText
ハイライト扱いにする文字列を指定します。FText 型で指定します。
・HighlightColor
ハイライト時のカラーを指定します。FLinearColor 型で指定します。
・AutoWrapText
文字列がはみ出る時に自動で折り返すかの指定をします。
・Margin
文字列を表示するときのマージン(スペース領域)を指定します。
FMargin 型で上下左右を指定します。
・OnDoubleClicked
ダブルクリックしたときの関数を指定します。
今回は自分自身を渡しているので Raw の名前の関数を使っています。

何気にダブルクリックの反応を受け取れたのがよかったです。クリックは無理そうでしたが。
UE4のスレートでの文字列表示はほとんどこの STextBlock を使うので覚えると便利そうですね。

| UE4 | 15:34 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/248-49c60044

TRACKBACK

PREV | PAGE-SELECT | NEXT