Здравствуйте имеется скрипт прыжка персонажа в 2д:
using UnityEngine;
using System.Collections;
public class Player2DControl : MonoBehaviour
{
private Rigidbody2D rb;
private Animator anim;
private float speedForce;
public bool isGround;
[Header("Выстрел")]
public GameObject blust;
public Transform pos1;
[Header("Прыхок и бег")]
public float speed = 1;
public float addForce;
void Start()
{
rb = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
}
void Update()
{
Jumping();
}
void Jumping()
{
if (Input.GetKeyDown(KeyCode.Space) && isGround == true) //Прыжок
{
speedForce += addForce;
rb.AddForce(new Vector3(0, speedForce, 0));
StartCoroutine("Jump");
isGround = false;
}
if (Input.GetKeyUp(KeyCode.Space)) //Адекватное презимление
{
speedForce -= addForce;
}
}
void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Ground")
isGround = true;
}
IEnumerator Jump() //корутин для анимации прыжка
{
anim.SetBool("isJump", true);
yield return new WaitForSeconds(0.05f);
anim.SetBool("isJump", false);
}
}
Суть проблемы - после нажатия пробела, игрок прыгает. Если в момент нахождения игрока в воздухе нажать на пробел снова, после приземления игрок "приклеивается" к коллайдеру земли и не реагирует на пробел (реагирует только анимация).
Что с этим можно сделать?