Simplify code with Scene Unique Names in Godot 3.5
とても便利
ノードの階層構造を変更してもコードが壊れない
使い方
Unique Name を適応したいノードを右クリックして、 Access as Scene Unique Name
にチェックする
これで、Scriptからは $"%ノード名"
で参照できる。
onready var add_item_button := $"%AddItemButton"
いや、 %ノード名
だけでもいけるっぽい
HUDがブランチシーンで、その配下のユニークノード %ExpBar
があるとしたら、以下のようにアクセスできる
$HUD/%ExpBar
シーンヒエラルキーでノードを選択して、スクリプトエディタ上にドラッグアンドドロップすると、宣言文が自動的に記述されるので便利。今後使っていこう
こちらの記事で紹介されている、 set_unique_name_in_owner(true)
で実行中にも対象ノードをユニークノードにできる
ただし、オーナーを設定する必要があり
gdfunc _ready() -> void:
owner = get_parent()
set_unique_name_in_owner(true)
gdadd_child(level)
level.owner = self または level.owner = owner
level.set_unique_name_in_owner(true)