Unity初心者です。2Dゲームを制作中です。
地面の境目、コライダーが入れ替わるところで、OnTriggerExit2Dが判定され、OnTriggerEnter2Dが判定されないため、しばらくジャンプが出来なくなります。
(訂正→判定されないというより、Exitの方が後に判定されるため、colliderに接触しているのにisGroudがfalseになってしまう)
(訂正②→stayを使うことにより、着地判定は可能になったが、着地をしたら足音を鳴らすという条件付だったため、stayだと足音がずっと呼び出され続けならせません。
どうすれば良いでしょうか・・・・)
現在、プレイヤーのBoxCollider+CapsuleColliderの底面に、もう一つBoxColliderを床にめり込むように設定して、下はisTriggerで着地判定させています。
地面のコライダーはPolygonColliderで作っています。
地面は、平面や山形の曲面の数種類をランダムでループさせています。
ただ、1番最初の平面と、2番目の平面の境目のところで上記の現象が起きてしまいます。
一応falseになった時に座標が呼び出されるようにしたところ、画像の地点でfalseになるようです。
解決策はありますでしょうか?
ご教授お願いしたいです。
コードは以下のようになってます。
C#
1void Update() 2{ 3 if (Input.GetMouseButtonDown(0) && isGround == true) 4 { 5 //上方向の力をかける 6 rigid2D.AddForce(Vector2.up * jumpVelocity * 50); 7 } 8} 9 10void OnTriggerEnter2D(Collider2D other) 11{ 12 13 //地面に接触した時 14 if (other.gameObject.tag == "groundTag") 15 { 16 isGround = true; 17 } 18} 19 20void OnTriggerExit2D(Collider2D other) 21{ 22 if (other.gameObject.tag == "groundTag") 23 { 24 isGround = false; 25 } 26}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。