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

RigidBody.velosity. Персонаж летит. Как исправить?

СообщениеДобавлено: 31 мар 2019, 23:19
mananasaly
Имеется код движения персонажа

Синтаксис:
Используется csharp
  void Update()
    {
        if (Input.GetButtonUp("right"))
        {
            rb.velocity = new Vector3(1, 0.5f, 0) * speedMove;
        }
        else

        if (Input.GetButtonUp("left"))
        {
            rb.velocity = new Vector3(-1, 0.5f, 0)* speedMove;
        }
        else

        if (Input.GetButtonUp("up"))
        {
            rb.velocity = new Vector3(0, 0.5f, 1)* speedMove;
        }
        else

        if (Input.GetButtonUp("down"))
        {
            rb.velocity = new Vector3(0, 0.5f, -1) * speedMove;
        }

    }


Вроде бы двигается нормально, но рывками, это первая проблема, которую хотелось бы исправить. Вторая проблема: если очень быстро нажимать на кнопки, то персонаж начинает попросту лететь. Пробовала убрать в векторе составляющую y, но мне бы все-таки хотелось, чтобы персонаж прыгал. Подскажите, как исправить?

Re: RigidBody.velosity. Персонаж летит. Как исправить?

СообщениеДобавлено: 31 мар 2019, 23:27
1max1
Он у тебя после отпускания клавиш ходит я так полагаю)) В чем прикол?

Re: RigidBody.velosity. Персонаж летит. Как исправить?

СообщениеДобавлено: 01 апр 2019, 07:00
NAGIBATOR228pacan
Я думаю надо для начала узнать что такое rigidbody.velocity, а потом уже начинать пользоваться этой возможностью. velocity задаёт скорость объекта по осям, и поэтому чтобы объект не висел в воздухе то при движении в позицию y вектора который ты будешь присваивать к velocity должно быть написано rigidbody.velocity.y.
Кароче вот тебя одна строчка с нужным тебе управлением.
Синтаксис:
Используется csharp
rigidbody.velocity = new Vector3(Input.GetAxis("Horizontal"),rigidbody.velocity.y,Input.GetAxis("Vertical"));
 

Re: RigidBody.velosity. Персонаж летит. Как исправить?

СообщениеДобавлено: 08 апр 2019, 22:39
AngryCat
Сотри окончания Up во всех условиях.