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での書き方
- 基本的な変数の公開
Godotでは、varの前に@exportを付けるだけです。型ヒント(: intなど)を付けることで、インスペクターが適切な入力欄を自動生成してくれます。
@export var player_hp: int = 100
@export var player_name: String = "勇者"
@export var movement_speed: float = 5.5
- インスペクターを使いやすくする「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
- インベントリなどに便利な「列挙型(Enum)」
Unity同様、ドロップダウンリストも簡単に作れます。
enum State { IDLE, RUN, JUMP }
@export var current_state: State
Unityユーザーが知っておくべき「3つの決定的な違い」
- アクセス修飾子の概念がない
Unityの[SerializeField]は、「変数をprivateに保ったままインスペクターに出す」ために使われます。
しかし、GDScriptには厳密なprivate変数が存在しません。@exportした変数は常に他のスクリプトからもアクセス可能である点に注意しましょう。
- Nodeへの参照方法
UnityではGameObjectをドラッグ&ドロップしますが、Godotでは特定のノード型を直接指定できます。
@export var target_sprite: Sprite2D # 特定の型のみ受け付ける- リソース(Asset)の扱い
Unityの「Prefab」は、Godotでは PackedScene という型になります。ここを間違えるとアタッチできないため、移行直後の初心者が最もハマりやすいポイントです。
まとめ:Godotの@exportは直感的で強力!
Unityの[SerializeField]に慣れている人なら、Godotの@exportはすぐに使いこなせるはずです。むしろ、グループ分け機能などはGodotの方が標準で充実しており、大規模な開発でもインスペクターを綺麗に保つことができます。
まずは簡単な変数から @export して、Godotの柔軟な開発体験を実感してみてください!

コメント