area2D,area entered)エリア判定が、collision shapeのskewの設定で広がってしまう

(v4.4.1 stable) 

area2Dに侵入した別エリアを検知する方法に、シグナル"area_entered"、を使用する方法があります。

・検知用エリアからシグナルarea_entered、をスクリプトで受信、

 エリアへの別エリアの侵入を検知








・以下のように、検知用のエリアを、collision shape 2D(shapeはrectangle(四角形)を選択)で作成、そこにプレイヤーのareaが侵入すると、例えばダメージが発生する、等で使用











これまでは、検知用エリアのcollision shapeの設定は、rotationやposition、scaleを編集する程度でした。
しかし今回、形を平行四辺形のようにしたくなり、skew(歪み)、を変更、以下のようにしました。

・collision shape の skew を変更、平行四辺形のような形状にする










想定としては、長方形の時同様、上記の平行四辺形(collision shapeの形)のエリアに、プレイヤーのエリアが侵入したら、侵入検知用のスクリプトが反応する、と考えていました。


しかし、なぜか以下のような位置で、エリアが重複していない場所で、侵入が検知されてしまいます。

・skew変更による平行四辺形の場合、以下の位置で検知されてしまう










・skewを変更しない(0)長方形なら、以下のエリアが接触した位置で検知される










原因は不明なのですが、見た目と挙動が変わってしまうのは、困りますね・・・
area関連の処理が、反応しない位置で反応してしまうことがあったら、skew等、collision shapeのインスペクタの形状の設定を疑い、シンプルな初期設定に戻して、一旦テスト、原因を探るのが良いかもしれません。

コメント

このブログの人気の投稿

プラグイン(godot sqlite)を含めてエクスポートすると、データの更新ができない問題

初心者に良い本は? → 『 ゆるっとはじめるGodot Engine ゲームプログラミング 』

他シーンからシグナルを送る方法