グループ内にある?
CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 12/27。
body.nameを確認すれば、1つのノードに対しては機能します。複数のノードを対象にする場合は、グループを確認します。
if body.is_in_group("racers"):
print(body.name, " finished!")is_in_group()はtrueまたはfalseを返します。ノードが1つだけの場合でも使いましょう。ノードの名前は、名前を変更したりコピーしたりすると変わります。グループを使えば、そのノードが何であるかを示せます。
3体のロボットがゴールラインに向かって走ります。RedとBlueは、シーンで設定されたracersグループに属しています。Botはコースを掃除し、どのグループにも属していません。
チャレンジ
簡単ゴールラインがレーサーに対してのみ表示するようにします。
_on_body_entered(body)の中で、printをifの中に入れます。ifでbody.is_in_group("racers")を確認するようにします。
「プレイ」を押します。コンソールにRed finished!とBlue finished!が表示され、Botは表示されません。その後、「確認」を押します。
自分で試してみよう
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
print(body.name, " finished!")
シグナルと衝突のすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド