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

Node解説

はじめに

ゲームで、プレイヤーから名前やIDを入力してもらいたい場面があります。チャットシステムを作るときも、テキスト入力が必要です。そうしたときに活躍するのが LineEdit ノードです。この記事では、LineEditの役割、使い方、カスタマイズ方法をわかりやすく説明します。

LineEditとは?

LineEdit は、プレイヤーが1行のテキストを入力するためのUIコンポーネントです。テキスト入力欄の本体であり、Godotで最も基本的なテキスト入力ノードです。

LineEditは、スマートフォンやパソコンの「テキスト入力ボックス」そのものだと考えてください。キーボードから入力を受け取よ、画面に表示します。

LineEditControl を継承しており、他のUIコンポーネントと同じように配置・スタイリング可能です。

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

  • プレイヤー名やニックネームを入力させたいとき
  • ゲーム内チャットやメッシージシステムを作るとき
  • ID・パスワード入力フォームを作るとき
  • シーン内で設定値や数値を入力してもらいたいとき
  • 検索ボックスやフィルター入力を実装するとき

一方、以下の場合は別のノードを使います。

  • 複数行のテキスト入力が必要なら → TextEdit
  • 単なるテキスト表示だけなら → LabelRichTextLabel

主なプロパティと機能

LineEditで最よく使うプロパティをまとめました。

プロパティ説明GDScriptコード例
textテキスト入力欄の内容line_edit.text = "初期テキスト"
placeholder_text入力欄が空のときに表示される薄いテキストline_edit.placeholder_text = "名前を入力してください"
max_length入力できる最大文字数line_edit.max_length = 20
secret入力内容を「*」で隠す(パスワード入力用)line_edit.secret = true
editableユーザーが編集できるかどうかline_edit.editable = false
text_changed シグナルテキストが変更されたときに発火line_edit.text_changed.connect(_on_text_changed)
text_submitted シグナルEnterキーが押されたときに発火line_edit.text_submitted.connect(_on_text_submitted)

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

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

よく使うカスタマイズ

パラメータ何を変えると何が起きるか使用例
max_length入力できる最大文字数を制限。20に設定すると、21文字目以降は入力されないline_edit.max_length = 20 で、プレイヤー名は最大20文字に
secrettrue にするとテキストが「*」で表示される。パスワード欄に必須line_edit.secret = true で、入力内容を隠す
placeholder_text入力欄が空のときのヒント表示。ユーザーに何を入力するか伝えるline_edit.placeholder_text = "メールアドレス"
text_changedユーザーが1文字入力するたびにシグナルが発火。リアルタイム検証に使うline_edit.text_changed.connect(_check_input) で々入力と同時に検証
text_submittedEnterキーが押されたときにシグナルが発火。「決定」ボタンの代わりになるline_edit.text_submitted.connect(_on_enter_pressed) でフォーム送信
editablefalse にするとテキスト入力欄が読み取り専用になるline_edit.editable = false で、プレイヤーが編集できなくなる

まとめ

LineEdit は、プレイヤーからテキスト入力を受け取るための基本的で便利なUIノードです。

覚えておくべきポイント:

  • 1行のテキスト入力に使う(複数行なら TextEdit
  • text_changedtext_submitted シグナルでユーザー入力に反応する
  • max_lengthsecret で入力内容を制限できる

次の記事では Button ノードを解説します。LineEditで入力を受け取ったら、ボタンで確定するゲームの流れを実装してみましょう。

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

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

コメント