【Godot】CollisionObjectをCanvasLayerの子ノードに設定しても衝突は検出されない

やっぱり自分の強みはマイナーなゲームエンジンであるGodotを使っているというところにあると思うので、Godotの記事を書いていきたいと思った。

さて、先日のOpenJam 2018をやっているときに気づいたのだが、CanvasLayerの子ノードにArea2Dを配置したところ、衝突が検出されなかった。Area2D以外のCollisionObjectも同じっぽい。

そもそもなぜそんなことをしたかというと、カメラを動かした際に、Area2Dノードの位置をHUDと同じように固定したかったから。 CanvasLayerの子ノードにしちゃえば固定されるだろうという安易な考えだったが失敗だった。

やはり下手にイリーガルな使い方をするものではないですね。結局素直にカメラの移動と一緒に Area2D自体も動かすことで解決した。