CollisionShape2D
Staticbody2Dで障害物の当たり判定を任意でオンオフさせたい時
これをスクリプトで制御した際Disabledをオンにした後、再度当たり判定を復活させた時に復活した当たり判定が機能しませんでした。
ダメな例
if not switch: CollisionShape2D.disabled = true switch = true else: CollisionShape2D.disabled = false switch = false
単純にdisabledをfalseにするだけではダメで、
set_deferred(インスペクタータブのプロパティ名, 対応した変数)を使用する必要があるとの事
成功例
【11/15】追記:Area2Dにて同様の方法でスイッチを作った所機能はするものの、赤文字のエラーが出たのでset_deferred()をtrue側にも使う方が良さそう。
if not switch: CollisionShape2D.set_deferred("disabled", true) switch = true else: CollisionShape2D.set_deferred("disabled", false) switch = false
消える足場のようなものを作る時にも同じ設定が必要になると思われます。
また当たり判定を再利用しないのならqueue_free()で対象オブジェクトを削除するのが一番簡単です。
Object.queue_free()