Страница 1 из 1

Странно работает Rigidbody2D.velocity

СообщениеДобавлено: 20 июл 2017, 18:53
waruiyume
Здравствуйте! Создаётся впечатление, что Rigidbody2D.velocity не выставляет вектор скорости, а складывает с предыдущим. Что я делаю не так?

Синтаксис:
Используется csharp
using UnityEngine;

public class CharacterController2d : MonoBehaviour
{
    public float horizontalSpeed = 5;

    private Rigidbody2D rigidbodyP;
    public float jumpSpeed = 5;

    void Start ()
        {
            rigidbodyP = GetComponent<Rigidbody2D>();
        }

    private void LateUpdate()
    {
        Vector2 moveVextor = new Vector2(Input.GetAxis("Horizontal")* horizontalSpeed, rigidbodyP.velocity.y);
        if (Input.GetButtonDown("Jump"))
            moveVextor.y = jumpSpeed;

        rigidbodyP.velocity = moveVextor;
    }
}
 

Re: Странно работает Rigidbody2D.velocity

СообщениеДобавлено: 20 июл 2017, 19:09
Anonymyx
Вы про плавное начало движения?
GetAxis() = -1...1 интерполированное значение.

Re: Странно работает Rigidbody2D.velocity

СообщениеДобавлено: 20 июл 2017, 19:24
waruiyume
И про это тоже, вообще объект ещё и разгонялся при многократном нажатии на прыжок.
Похоже что-то залипло в сборке, и выполнялась не последняя версия кода, а залипшая несколько компиляций до этого, после принудительного, двукратного реимпорта скрипта, через контекстное меню редактора, тки просралось.
Такой глюк случается довольно редко, но зато причиняет дикую попаболь, т.к. у меня ни разу не получалось его быстро распознать ~x(

Re: Странно работает Rigidbody2D.velocity[решено]

СообщениеДобавлено: 21 июл 2017, 04:34
waruiyume
За сегодня в 2017 [unity 3D] баг с залипанием старого кода повторился более 10 раз, это полный писец.