@Romanuss

Спарайт застревает находясь на коллайдере, как исправить Unity?

Здравствуйте имеется скрипт прыжка персонажа в 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);
    }
}

Суть проблемы - после нажатия пробела, игрок прыгает. Если в момент нахождения игрока в воздухе нажать на пробел снова, после приземления игрок "приклеивается" к коллайдеру земли и не реагирует на пробел (реагирует только анимация).
Что с этим можно сделать?
  • Вопрос задан
  • 766 просмотров
Решения вопроса 1
@saylar
Разработчик Unity C#
Сделай speedForce публичным и смотри, что с ним происходит.
На сколько я понял, он у тебя не приклеивается, а просто когда ты отпускаешь пробел, у тебя speedForce минусуется до бесконечности, ибо я не увидел ограничений по нем.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы