OpenAssetOrgのアセットで2Dゲームを作る⑦ タイルマップへのあたり判定設置
「せっかく壁があるのに矢が貫通してしまうので、コリジョンを設置する。タイルセットにはコリジョンの作成機能があるので、それを使うのが一番簡単」
「だいたいここに書いてある通りにやるだけでいい」
「そのタイルを選択した状態で、AddBoxボタンを押すと、タイル全体を覆うような四角形のコリジョンが作成される。タイルセット側はこれでOK」
「レベル上に設置してあるタイルマップの方も調整する。ビューポートにある表示メニューで、CollisionをOnにしておくとわかりやすいんだけど、タイルセットで設定した形のコリジョンに、指定しただけの厚みを付けてくれる。表示の関係でY軸がずれてもコリジョンに当たるようになる」
妹「これ2Dなのに、Use3DPhysicsの設定でいいの?」
「うん。さっきのドキュメントにも書いてあるんだけど、2Dって設定すると動かない場合がある。っていうか動かなかった。アップデートで2D専用のコリジョンが追加されれば変わると思う」
「矢と壁のコリジョン設定が上手くいけば、矢が壁にあたる。今回はMovementComponentでBounceに設定してるから、当たった時に反射するけど、Hitイベントで消滅させるのでもいい」
妹「なんか、ところどころ変な形の矢があるね。矢が短かったりとか」
「あー、反射した時に3D方向にずれたんだろうね。壁とぶつかった時か、いまは矢と矢もぶつかる状態だからそっちのせいかもしれない。回転しちゃいけない軸が回転してる。これも調整しないといけない」