はじめに
2Dアクションゲーム制作にて、プレイヤーが壁に張り付く事象が発生した。
解決方法は簡単だったが、様々な場面で使える機能であるため備忘として残す。
発生した事象
プレイヤーがジャンプで壁に触れた際、方向キーを押し続けると壁に張り付いてしまう。
原因
Unityの2D Colliderにはデフォルトで摩擦力(Friction)が設定されている。
今回はその摩擦力によって、壁接触時にプレイヤーが張り付くような挙動になっていた。
解決方法
UnityのPhysics Material 2Dで摩擦力を0に設定する。
Friction(摩擦力)を0にしたことで、プレイヤーが壁に接した状態で方向キーを押し続けても真下に落下するようになった。
弾性力の変更
Physics Material 2DではBounciness(弾性力)も設定することができる。これを使えば、常に弾み続けるプレイヤーを操作するアクションゲームにすることもできる。
結論
プレイヤーが壁に張り付いてしまう原因はオブジェクトの摩擦力であり、
Physics Material 2Dで摩擦力を0にすることで解決することができる。
特に2Dアクションゲームでは摩擦力や弾性力が操作感に直結するため、
目的に応じて適切に設定することが重要だと感じた。



