Задать вопрос
@twilighthasan

Объект который движется в стороны, при движении по диагонали скорость увеличивается unity C#?

float _x, _y;
    public float speed = 10.0f;

    void FixedUpdate()
    {


        _x = Input.GetAxis("Horizontal") * Time.fixedDeltaTime * speed;
        _y = Input.GetAxis("Vertical") * Time.fixedDeltaTime * speed;
        Vector3 v = new Vector3(_x, _y);
        print("Скорость движение " + rb.velocity.magnitude);

        rb.AddForce(v, ForceMode.Impulse);


        if (_x == 0 || _y == 0)
        {
            rb.velocity = Vector3.zero;
        }
        else
        {
            rb.velocity = Vector2.ClampMagnitude(v, 0);
        }



    }
  • Вопрос задан
  • 739 просмотров
Подписаться 1 Простой 9 комментариев
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
предложу вам начертить на листочке в клеточку.
вектор силы размером в единицу по Х (1;0)
потом вектор силы размером в единицу по У (0;1)
теперь сложенный вектор (1;1)

с удивлением увидите что "диагональ" (размер вектора) больше будет. соответственно и сила.

как исправить? обычно если это просто вектор направления - то его нормализуют.
надеюсь понятно было. удачи)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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