Godot 4 | ノードの表示・非表示を切り替える、表示状態を確認するスクリプト

2024-05-12Godot 4,Godot 4 ノード全般

Godot 4 | ノードの表示・非表示を切り替える、表示状態を確認するスクリプト

ゲームエンジン「Godot 4」hide()メソッド、visibleプロパティでゲームオブジェクトにしているノードを非表示にする手段にと、表示状態の確認、分岐について紹介しています。

確認環境
  • Windows11 22H2
  • Godot v4.1.1

hide()メソッドでノードを非表示にする

hide()メソッドで自身や親子ノード、別階層にあるノードを非表示にするパターンまとめです。

# 自身を非表示にする
hide()
self.hide()

# 子ノードを非表示にする
var targets = get_children();
for target in targets:
	# print(target.name)
	target.hide()

# 親ノードを非表示にする
var target = get_parent()
# print(target.name)
target.hide()

# パスで指定(親、子以外のノードなども)して非表示にする
var target = get_node("/root/Main/Enemy")
target.hide()

hide()メソッドで非表示にしたノードはshow()メソッドで表示に戻す事ができます。

# 自身のノード
show()
self.show()

# 自身ではないノード
target.show()

visibleプロパティでノードを非表示にする

visibleプロパティでノードを非表示にするには、対象ノードの「visible」プロパティに「false」を指定します。

# 自身を非表示にする
visible = false
self.visible = false

# 子ノードを非表示にする
var targets = get_children();
for target in targets:
	# print(target.name)
	target.visible = false

# 親ノードを非表示にする
var target = get_parent()
# print(target.name)
target.visible = false

# パスで指定(親、子以外のノードなども)して非表示にする
var target = get_node("/root/Main/Enemy")
target.visible = false
# 自身のノード
visible = true
self.visible = true

# 自身ではないノード
target.visible = true

ノードの表示状態を確認する

hide()メソッドも、visibleプロパティでの「false」への値変更も、処理内容は同じで、visibleプロパティの値を「false」にします。

ですので、表示状態の確認や分岐は、いずれもvisibleプロパティの値を取得する事で実装可能です。

# ログを出力
print(self.visible)

♯ 表示、非表示で条件分岐
if self.visible:
	# visibleがtrueのとき
	pass
else:
	# visibleがfalseのとき
	pass

「modulate」APIで透明にしている場合など、その他の方法で非表示状態にしている場合は確認、分岐できない場合があります。