Как установить Rigidbody.Velocity в Unity

А)Необходимо при возрождении игрока обнулить его скорость, чтобы он не двигался по инерции, полученной до смерти;

Б)Необходимо реализовать пружинную платформу, которая подбрасывала бы вверх на определенную высоту.

Пробовал манипулировать velocity, однако не очень выходит.

Кусок кода для пункта А:

        if(transform.position.y<=Deadline)
    {
        transform.position = Pos;
        gameObject.GetComponent<Rigidbody>().velocity.Set(0,0,0);
        Lives--;
    }

По идее, код должен перемещать позицию игрока в точку pos и обнулять вектор его скорости. Перемещение происходит, остановка - нет.

Код для пункта Б:

private void OnTriggerEnter(Collider other)
{
    other.gameObject.GetComponent<Rigidbody>().velocity.Set(other.GetComponent<Rigidbody>().velocity.x, Force, other.GetComponent<Rigidbody>().velocity.z);
}

Таким образом, код для "батута" предполагает установить вектор скорости с x,z равным предыдущим, а y - приравнять к переменной Force. Чего тоже не происходит.

Я не могу использовать здесь AddForce: В таком случае, при падении на "батут" сила прыжка также будет зависеть от скорости падения, и её придется учитывать в формуле.

Что я делаю не так?


Ответы (0 шт):