ノード解説「LineEdit」

はじめに

ゲームで、プレイヤーから名前や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文字に
secret true にするとテキストが「*」で表示される。パスワード欄に必須 line_edit.secret = true で、入力内容を隠す
placeholder_text 入力欄が空のときのヒント表示。ユーザーに何を入力するか伝える line_edit.placeholder_text = "メールアドレス"
text_changed ユーザーが1文字入力するたびにシグナルが発火。リアルタイム検証に使う line_edit.text_changed.connect(_check_input) で々入力と同時に検証
text_submitted Enterキーが押されたときにシグナルが発火。「決定」ボタンの代わりになる line_edit.text_submitted.connect(_on_enter_pressed) でフォーム送信
editable false にするとテキスト入力欄が読み取り専用になる line_edit.editable = false で、プレイヤーが編集できなくなる

まとめ

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

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

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

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

シリーズ一覧

  • 001: Node
  • 002: Node2D
  • 003: Sprite2D
  • 004: AnimatedSprite2D
  • 005: CharacterBody2D
  • 006: CollisionShape2D
  • 007: Area2D
  • 008: RigidBody2D
  • 009: Camera2D
  • 010: Label
  • 011: RichTextLabel
  • 012: LineEdit
  • 013: Button

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

コメント