最終確認日
Godotにおけるbody_enteredとarea_enteredの違い
body_entered と area_entered は、Area2D
ノードが他のノードと交差したときに発生するシグナルであるが、対象となるノードの種類が異なる。
body_entered(body: Node)
- 発信元:
Area2D
- 対象:
PhysicsBody2D
(例:CharacterBody2D
,RigidBody2D
,StaticBody2D
) - 用途: プレイヤーや敵など「物理挙動を持つオブジェクト」が入ったことを検知する
- 例: プレイヤーがトラップエリアに入ったときにダメージを与える
- 発信元:
area_entered(area: Area2D)
- 発信元:
Area2D
- 対象: 別の
Area2D
- 用途: センサー同士の重なり、エリア効果の検知など、エリア間の相互作用を検出す
- 例: 毒ガスエリアとプレイヤーの感知エリアが重なったときにステータス異常を発生させる
- 発信元:
補足
- どちらも
monitoring
(自身)およびmonitorable
(相手)プロパティがtrue
である必要がある - 衝突レイヤーとマスクが一致していないとイベントは発生しない

公開日
更新日