アクションゲームでよく見る、下から上に貫通する床をUnityでは[Platform Effector 2D]を使用して簡単に実装できるのですが、
その床に横方向からぶつかった場合に当たり判定が残っていて思った挙動にならなかったため、
それを解消する方法が今回の記事の内容です。
結論、通り抜ける床の[Surface Arc]を180→90に変更すると思った通りの動作になりました。
下から貫通する床の実装方法
こちらのサイトを参考に下から貫通する床を実装しました。
実装したすり抜ける床の設定はこんな感じです。
![](https://sasami-daifuku.com/wp-content/uploads/2023/09/image-2-1024x931.png)
実装後の挙動
![](https://sasami-daifuku.com/wp-content/uploads/2023/09/Movie_022.gif)
黄色の床をカエルがすり抜けるようになりました。
横からの当たり判定をなくす
ただしこのままでは、下から貫通する床の横に当たり判定が残ったままになってしまっています。
![](https://sasami-daifuku.com/wp-content/uploads/2023/09/Movie_024.gif)
そこで、通り抜ける床の[Surface Arc]を180→90に変更します。
![](https://sasami-daifuku.com/wp-content/uploads/2023/09/5795bf53632e87c62240b265dc4738a3-1024x807.png)
これで横からの当たり判定がなくなりました
![](https://sasami-daifuku.com/wp-content/uploads/2023/09/Movie_025.gif)
説明
Surface Arcはコライダーが通ることのできない面を定義するとあります。
初期値の180度のままだと、下からは通り抜けることができたのですが横方向からは通り抜けることができなかったみたいです。
ここの値を調節することで横方向の当たり判定をなくすことができました。
![](https://sasami-daifuku.com/wp-content/uploads/cocoon-resources/blog-card-cache/662a9971c495cc6f469399365d140fa4.png)
Platform Effector 2D - Unity マニュアル
終わりに
以上、下から貫通する床の横方向の当たり判定をなくす方法でした。
コメント