private float speed = 8;
float jumpForce = 15;
private bool isGround = false;
private Rigidbody2D rb;
private SpriteRenderer sprite;
private void FixedUpdate() {
CheckGround();
}
private void Update(){
if (Input.GetButton("Horizontal"))
Run();
if (isGround && Input.GetButton("Jump")) {
Jump();
Debug.Log("Jump");
}
}
private void Awake() {
rb = GetComponent<Rigidbody2D>();
sprite = GetComponentInChildren<SpriteRenderer>();
}
private void Jump() {
rb.AddForce(transform.up * jumpForce);
}
private void CheckGround() {
Collider2D[] collider = Physics2D.OverlapCircleAll(transform.position, 0.3f);
isGround = collider.Length > 1;
Debug.Log("CheckGround");
}
Проблема по результатам дебага находится в этой строчке
isGround = collider.Length > 1
выражение приписывает значение false хотя по идее должно быть true