###前提・実現したいこと
前回質問した
URL:teratail.com/questions/189192
と類似した問題になるのですが・・
以下のソースに
ContactFilter2Dを追加しジャンプ処理を行ったのですが、クリック(タップ)でジャンプした後
キャラクターが地面に着地する前に、もう一度クリックを行うとジャンプができてしまい連続で
飛んでいる状態になってしまいます。
Debug.Logで確認したり、フィルターの項目のチェックを外したりしましたが改善しなかったため
再度こちらで質問することにしました。
回答よろしくお願いします。
###該当のソースコード
// コライダーのフィルター(追加) [SerializeField] ContactFilter2D filter2d = default; void Update () { ---省略--- //地面レイヤー判定(LineCastの処理を以下に変更) if (GetComponent<Rigidbody2D>().IsTouching(filter2d)) { isGroud = true; } //ボタンをクリック(タップ)した時 if (isGroud && Input.GetMouseButtonDown(0)) { ---省略--- animator.SetBool("isDash", false); //ダッシュアニメフラグ animator.SetTrigger("Jump"); //ジャンプトリガー rd2D.AddForce(Vector2.up * JumpPower); //ジャンプ力分上に加速 isGroud = false;//←2回目のジャンプでようやくfalseになる? } } ``` ###補足情報(言語/FW/ツール等のバージョンなど) Unity 2018.3.11f1 言語:C# 2DキャラのPivotはbottom centerになります。 isGroudの値は1回目のクリックでは[true]のままで 着地前に2回目クリックすると[false]になります。 2回目で[false]になるので3回目以降のクリックではジャンプはしません。 参考: http://tsubakit1.hateblo.jp/entry/2018/04/07/234028

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。