GDScriptにおけるドルマーク$
の意味と使用方法をまとめます。
はじめに
Godot Engineを触り始めた頃、以下のようなGDScriptコードの意味が分かりませんでした。
var sprite = $Sprite
ドルマーク$
がGoogle検索で引っ掛からないこともあり、暫くドキュメントを探し回ったものです。
今回は、GDScriptにおけるドルマーク$
の意味と、その使い方を整理します。
ドルマーク$
はget_node()
の略記である
GDScriptにおいて、ドルマーク$
はget_node()
の略記を意味します。
以下ドキュメントの引用です。
Literal | Type |
---|---|
$NodePath |
Shorthand for get_node("NodePath") |
このようにget_node("NodePath")
を$NodePath
として表記することができます。
※ドルマーク$
略記が開発された経緯は、こちらのissueで見ることが出来ます:
Shorthand for get_node() · Issue #4309 · godotengine/godot · GitHub
それでは、いくつかの基本的な使い方を見ていきます。
使用例
子Nodeの取得
通常の子Nodeの取得は、次のように行います。
var node = $ChildNode
ただし、Node名にスペースや$
、#
などの特殊文字を含む場合は、ダブルクォーテーション""
またはシングルクォーテーション''
で囲む必要があります。
var node = $"Child Node"
また子Node以降の孫Nodeは、パスを指定することで取得できます。
var node = $ChildNode/GrandChildNode
親Nodeの取得
親Nodeは、次のように取得できます。
var node = $".."
親のパスを意味する ..
を利用しています。
$.
で始まるパスを与える場合は、ダブルクォーテーション (or シングルクォーテーション)で囲む必要があります。
※なお、get_parent()
でも同様に親Nodeを取得できます。
同階層Nodeの取得
同階層のNodeは、親Nodeから辿ることで取得できます。
var node = $"../FrendNode"
自Nodeの取得
自Nodeは、以下で取得できます。
var node = $"."
現在パスを意味する .
を利用しています。
絶対パスでの取得
rootからの絶対パスでNodeを取得するには、次のようにします。
var node = $"/root/Node0/Node1"
/root
から始まる絶対パスを指定することで、該当のNodeを取得できます。
$/
で始まるパスを与える場合、ダブルクォーテーション (or シングルクォーテーション)で囲む必要があります。
おわりに
以上、Godot Engine: GDScriptにおけるドルマーク$
の意味と使用例を整理しました。
私自身、Godot Engineは触り始めたばかりです。
まだ使いこなせてはいない状態ですが、UnityやUnreal Engineに比べてシンプルな哲学・使用感が気に入っています。
これからも、折を見て初心者としての軌跡を残していく所存です。
[関連記事]
参考
GDScript reference — Godot Engine (stable) documentation in English
Shorthand for get_node() · Issue #4309 · godotengine/godot · GitHub