【Godot4入門】UnityのSerializeFieldはどれ?。”@export”の使い方と決定的な違いを徹底解説

スポンサーリンク

UnityからGodot Engineへの移行を検討している際、最初に「これどうやるの?」と探す機能の筆頭が [SerializeField] ですよね。

インスペクター(Unityのインスペクターウィンドウ)上で値を調整したり、プレハブをアタッチしたりするあの機能、Godotでは @export アノテーションがその役割を担います。

今回は、Godotの@exportについて、Unityとの比較を交えながら、2026年最新のGDScript 2.0仕様に基づいた実戦テクニックを解説します!


Unityの [SerializeField] と Godotの @export の対応表

まずは結論から。Unityでよく使う機能が、GodotのGDScriptでどう記述されるかをまとめました。

機能Unity
(C#)
Godot
(GDScript)
基本の公開[SerializeField] private float speed;@export var speed: float
数値の範囲制限[Range(0, 10)]@export_range(0, 10)
テキストエリア[TextArea]@export_multiline
プレハブ/シーンpublic GameObject prefab;@export var scene: PackedScene
色の選択public Color color;@export var color: Color
ノード参照public Light light;@export var light: DirectionalLight3D

具体的なコード例:Godotでの書き方

  1. 基本的な変数の公開

Godotでは、varの前に@exportを付けるだけです。型ヒント(: intなど)を付けることで、インスペクターが適切な入力欄を自動生成してくれます。

@export var player_hp: int = 100
@export var player_name: String = "勇者"
@export var movement_speed: float = 5.5
  1. インスペクターを使いやすくする「Group」と「Subgroup」

Unityでは [Header("Name")] を使って整理しますが、Godotは標準でより高度な整理(折り畳み)が可能です。

@export_group("Status Settings")
@export var speed: float = 10.5
@export var jump_force: float = 500.0

@export_subgroup("Visuals")
@export var sprite_color: Color = Color.WHITE
@export var effect_scale: float = 1.0
  1. インベントリなどに便利な「列挙型(Enum)」

Unity同様、ドロップダウンリストも簡単に作れます。

enum State { IDLE, RUN, JUMP }
@export var current_state: State

Unityユーザーが知っておくべき「3つの決定的な違い」

  1. アクセス修飾子の概念がない

Unityの[SerializeField]は、「変数をprivateに保ったままインスペクターに出す」ために使われます。
しかし、GDScriptには厳密なprivate変数が存在しません。@exportした変数は常に他のスクリプトからもアクセス可能である点に注意しましょう。

  1. Nodeへの参照方法

UnityではGameObjectをドラッグ&ドロップしますが、Godotでは特定のノード型を直接指定できます。

@export var target_sprite: Sprite2D  # 特定の型のみ受け付ける
  1. リソース(Asset)の扱い

Unityの「Prefab」は、Godotでは PackedScene という型になります。ここを間違えるとアタッチできないため、移行直後の初心者が最もハマりやすいポイントです。


まとめ:Godotの@exportは直感的で強力!

Unityの[SerializeField]に慣れている人なら、Godotの@exportはすぐに使いこなせるはずです。むしろ、グループ分け機能などはGodotの方が標準で充実しており、大規模な開発でもインスペクターを綺麗に保つことができます。

まずは簡単な変数から @export して、Godotの柔軟な開発体験を実感してみてください!

コメント

タイトルとURLをコピーしました