レイヤーとマスク
CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 22/27。
ボディとエリアは、番号付きのコリジョンレイヤー上にあります。それぞれに2つの設定があります。
collision_layer:そのオブジェクトが属しているレイヤー。collision_mask:そのオブジェクトが調べるレイヤー。エリアは、マスクに含まれるレイヤー上にあるボディだけを検知します。
どちらも数値です。レイヤー1は1、レイヤー2は2、レイヤー3は4、レイヤー4は8です。すべてのオブジェクトは最初、レイヤー1に属し、マスクは1なので、すべてのオブジェクトが互いを検知します。
ここでは、プレイヤーはレイヤー2に、サンゴのボールはレイヤー1にいます。プレイヤーだけがコインを取れるようにするには、コインがレイヤー2だけを調べるようにします。
func _ready():
collision_mask = 2チャレンジ
中級転がるボールは、あなたが取る前にコインを取ってしまいます。_ready()で、コインのcollision_maskを設定し、レイヤー2(プレイヤーのレイヤー)のみを検知するようにします。ボールはコインをすり抜けるはずです。その後、あなたが近づいてコインを取ります。
自分で試してみよう
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
queue_free()
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
シグナルと衝突のすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド