Godotエンジン:衝突と衝突検出の簡単な例(RigidBody2DとStaticBody2Dの衝突)



Godot Engine Simple Example Collision



以下のシーンツリーに示すように、シーンを作成します。

  • ノードの名前はノードタイプです
  • 赤いボックスはそれぞれに対応しますCollisionShape2D in Shape(両方RectangleShape2D)スコープ
    画像

注意:
不必要なパフォーマンスの消費を避けるために、RigidBodyおよびRigidBody2Dデフォルトでは、衝突検出はオンになっていないため、衝突検出が必要な場合は、次の2つのことを行う必要があります。



  • will Contact Monitor Set to true(衝突検出を有効にする)
  • will Contact Roported 0より大きい値に設定します(衝突結果の最大数を返します)

画像

以下は、「RigidBody2D」のスクリプトの内容です。



「Body.gd」
コールバックメソッドを置くcollision_callback接続RigidBody2Dシグナルbody_entered on

extends RigidBody2D func _ready(): connect('body_entered',self,'collision_callback') func collision_callback(node): print('I am a:' + name + 'I hit one' + node.name)

画像

出力結果



I am a: RigidBody2D, I ran into a StaticBody2D