0
スペースバーが押された回数を数えることでプレイヤーがダブルジャンプできるようにするプレーヤー移動スクリプトがあります。早い段階で2つのバージョンを扱っていましたが、現在は無作為に停止しています。なぜそれが無作為に停止したのかわからない。Unity 5.3.5fスペースバーを登録していません
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour
{
public float jumpPower = 2f;
[SerializeField]
public bool isGrounded = true;
[SerializeField]
private LayerMask groundLayer, waterLayer;
private int numSpacePress = 0;
private Rigidbody2D rb;
// Ground Checker Stuff
public Transform groundChecker;
public float groundCheckRadius = 0.1f;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space) && isGrounded && numSpacePress < 2)
{
numSpacePress++;
Debug.Log("Num spaces pressed = " + numSpacePress);
rb.velocity = new Vector2(rb.velocity.x, jumpPower);
if (numSpacePress >= 2)
{
isGrounded = false;
}
}
Collider2D[] hits = Physics2D.OverlapCircleAll(groundChecker.position, groundCheckRadius);
foreach (Collider2D hit in hits)
{
if (hit.gameObject != gameObject)
{
Debug.Log("Hit = " + hit.gameObject.name);
if (((1 << hit.GetComponent<Collider2D>().gameObject.layer) & groundLayer) != 0)
{
isGrounded = true;
numSpacePress = 0;
}
}
}
}
}
What's Happening Gif、はっきりGIFに私は二回スペースキーを押していますが、それは一つだけで押されたスペースの数を印刷しています。プレーヤーが地面にある場合、押したスペースの数はリセットされますが、gifはプレイヤーが地面に触れていないことも示します。押したときにスペースバーが登録されないのはなぜですか?