5.スクリプトを書いてみよう1
スクリプトのアタッチ
次はスクリプトを書いてみます。「シーン」ドックの「Sprite2D」を右クリックして、「スクリプトをアタッチ」を選びます。

「ノードにスクリプトをアタッチする」ダイアログが開きますので、そのまま「作成」ボタンを押します。ファイル名はデフォルトでは、アタッチするシーンと同じファイル名になっています。

「作成」ボタンを押すと、「ファイルシステム」ドックのツリーに、sprite_2d.gd
というファイルが作成されます。そしてエディターのビューが「Script」になり、作成したsprite_2d.gd
が開かれた状態になります。
また、「シーン」ドックの「Sprite2D」の右横にスクリプトのアイコンが追加されます。

ウィンドウのタイトルバーを見てください。プロジェクトが変更されたので未保存の状態になっています。「Ctrl+S」を押して、プロジェクトを保存します。
スクリプトを書いてみよう
さて、sprite_2d.gd
の先頭行にはextends Sprite2D
と書いてあります。このファイルはSprite2D
を継承しています。GDScriptは、1ファイルが1クラスになります。
それではsprite_2d.gd
にプログラムを書いていきましょう。まずは、GDScriptでコンストラクターに相当する_init
関数を定義します。この中に「Hello, world!」と出力するスクリプトを書きます。
extends Sprite2D func _init(): print("Hello, world!")
GDScriptでは、関数はfunc 関数名:
で定義します。_
が付いている関数は、GDScript側で用意している「Godot Engineとやりとりするための関数」です。このタイプの関数はオーバーライドして使います。
またGDScriptでは、インデントはタブ文字を利用します。Pythonのように半角スペースではないです。エディター上で「Tab」キーを押すと、タブ文字が挿入されます。インデントを解除する時は「Shift+Tab」を押します。
出力はprint
関数を使います。
さて、_init
関数の定義の前に、2つ改行を入れています。GDScriptのスタイルガイドでは、関数とクラスの定義は2つの空白行で囲むことになっています。そのため、関数の前に2つの空白行を設けています。

実行確認
ここまでのスクリプトを実行してみましょう。「Ctrl+S」で変更を保存したあと、右上の「▶」(プロジェクトの実行)をクリックします。先ほどと同じように「test (DEBUG)」というウィンドウが表示されます。
ウィンドウを閉じて、エディターの変化を確認します。中央のビューの下に「出力」パネルが開き、「Hello, world!」と表示されています。

このように表示されるのは、sprite_2d.gd
がsprite_2d.tscn
にアタッチされているからです。
「Sprite2D」シーンがインスタンス化されるタイミングで、sprite_2d.gd
は自動で呼び出されます。