Godot入門:TextEditの使い方と活用法

対象読者:Godotの基本操作を少し触ったことがある初級者の方

はじめに

ゲーム内のチャット欄やメモ機能など、複数行の文章を入力させたいときに使うのが TextEdit です。1行だけの入力ならLineEditで十分ですが、改行を含む長い文章を扱うならTextEditの出番です。

TextEditとは?

TextEditは、複数行のテキストを表示・編集できるUIノードです。改行、カーソル移動、範囲選択、コピー&ペーストなど、テキストエディタとして必要な基本機能を標準で備えています。

たとえるなら、TextEditはメモ帳アプリそのものです。1行に収まらない長い文章を、自由に改行しながら書き込めます。

TextEdit は Control → CanvasItem → Node を継承しています。他のControl系ノードと同じく、アンカーやサイズでレイアウトを調整できます。

このノードを使うべき場面

  • ゲーム内チャットやメッセージの入力欄を作るとき
  • プレイヤーがメモや日記を書き込める機能を作るとき
  • 複数行にわたる設定値やスクリプトを編集させたいとき
  • 入力欄の規模が大きくなるほど重要になるノードです: 長文入力やチャット履歴など、テキスト量が増えるほどTextEditの折り返し・スクロール機能が活きてきます

使わない・別のノードが適切な場合:

  • 1行だけの入力(名前やパスワードなど) → LineEdit を使う
  • 編集させたくない、表示だけしたい → RichTextLabelLabel を使う
  • コードの入力補完やシンタックスハイライトが必要 → CodeEdit(TextEditを継承した専用ノード)を使う

使うかどうかの目安: 入力欄に改行が必要になった時点でLineEditからTextEditへ切り替えましょう。逆に1行で済むならLineEditの方がシンプルです。

主なプロパティと機能

TextEditの代表的なプロパティとメソッドを以下にまとめました。

プロパティ/メソッド役割
text入力・表示されているテキスト全体String
placeholder_text未入力時に表示する薄いヒント文字String
editable編集可能かどうかbool
wrap_mode行の折り返し方法int
get_line(line)指定した行のテキストを取得String
insert_text_at_caret(text)カーソル位置にテキストを挿入void
text_changedテキストが変更されたときに発火するシグナルSignal

もっと使いこなす:カスタマイズできるパラメータ

まずは基本を動かしてみてから、余裕が出たら試してみてください。

1. テキストの取得と変更検知

貼り付け先の準備: ①シーンツリーで+ボタンから「TextEdit」を検索して追加 ②インスペクターでplaceholder_textなどを設定 ③右クリックして「アタッチスクリプト」→GDScriptのまま「作成」を押し、開いたエディタに以下を貼り付け

extends TextEdit

func _ready() -> void:
	placeholder_text = "ここにメモを入力..."
	text_changed.connect(_on_text_changed)

func _on_text_changed() -> void:
	print("現在の内容: ", text)

2. 読み取り専用モードにする

ログ表示やチャット履歴など、ユーザーに編集させたくない場合はeditablefalseにします。

editable = false  # 編集不可、表示専用にする

よくある質問:似たノードとの違い

Q. TextEditとLineEditの違いは?
A. LineEdit は1行だけの入力欄です。改行を含む複数行の文章を扱いたいならTextEditを使います。

Q. TextEditとCodeEditの違いは?
A. CodeEditはTextEditを継承し、行番号表示やコード補完、シンタックスハイライトなど、プログラムコードの編集に特化した機能を追加したノードです。普通の文章入力ならTextEditで十分です。

Q. TextEditとRichTextLabelの違いは?
A. RichTextLabel は編集不可の表示専用ノードです。ユーザーに文字を打たせたいならTextEdit、装飾された文章を表示するだけならRichTextLabelを使います。

まとめ

TextEdit は、複数行のテキスト入力を扱うための標準ノードです。

  • チャット欄やメモ機能など、改行を含む文章入力が必要な場面で活躍します
  • text、editable、placeholder_textなど、基本のプロパティから覚えましょう
  • editableをfalseにすれば、ログ表示など読み取り専用の用途にも使えます

次の記事では、複数の項目から選択させる ItemList を解説します。

関連性の高いノード解説記事

この記事はGodot 4.xをもとに執筆しています。

コメント