
前回の記事でUnity-chanがジャンプし続けてしまう問題がありました。
今回はなぜジャンプしつづけてしまうのかとその解決方法について記載していこうと思います。
ジャンプし続けてしまう理由
ジャンプができる条件は「接地していること」です。
つまり接地していないのに、接地していることになっていることが悪さをしていそうですね。
接地条件(Third Person Controller > Grounded)を見直します。

では、ゲームを実行して「Grounded」の状態を確認します。
まずは接地している状態を確認します。

接地状態ですね。
次にジャンプしている状態を確認します。

こちらも接地状態になっています。
当たり判定である緑の円がUnity-chanの当たり判定と接触しているため接地と判定されてしまっているようです。
解決方法
解決する手順は2つです。
キャラクターの当たり判定を見直す
地面の当たり判定を見直す
キャラクターの当たり判定を見直す
Unity-chanのインスペクタウィンドウを確認します。
「Character Controller > Step Offset」を0.2にします。
「 Character Controller > Center > Y」を0.08にします。
「Character Controller > Radius」と 「Character Controller > Height」を0.1にします。

次に「Third Person Controller > Grounded Offset」を0.15にします。
「 Third Person Controller > Grounded Radius」を0.01にします。

Unity-chanを確認します。

Unity-chanと接地判定が接触していないことがわかります。

この状態でゲームを実行します。

接地判定がfalse(赤色)になっています。

この原因は地面の当たり判定と接地判定が接触していないことが理由です。
地面の当たり判定を見直す
現在、地面は3DオブジェクトのPlaneを使用しています。
Planeは厚みがないので当たり判定が狭くなってしまいます。
ですので地面を「Cube」に変更して厚みをつけてみます。

インスペクタウィンドウからCubeを変形します。

地面らしくなりました。

Unity-chanが少し埋まってしまったので地面の上に移動させてあげます。

動作を確認する
それでは修正ができたので動作確認をします。
おわりに
無事ジャンプができるようになりました。
当たり判定はUnity開発を進めていく上で避けては通れないので身に着けたいですね。

この作品はユニティちゃんライセンス条項の元に提供されています