Fcorpion
@Fcorpion
Per aspera ad astra = Через терни к звёздам.

Не получается повернуть объект с помощью Rigitbody метода MoveRotation(), Что я делаю не так?

private void OnEndMove(InputAction.CallbackContext context)
    {
        Debug.Log(context.interaction);
        _endPosition = _control.SwipeMap.PrimaryPosition.ReadValue<Vector2>();
        var direction = (_endPosition - _startPosition).normalized;
        // Debug.Log("End = " + _endPosition);
         Debug.Log("Direction = " + direction);
         if (direction.x < 0.5) direction.x = 0;
         if (direction.y < 0.5) direction.y = 0;
        var newRotate = new Vector3(_cube.transform.rotation.eulerAngles.x + direction.y, 0,
            _cube.transform.rotation.eulerAngles.z + direction.x);
        var rotate = Quaternion.Lerp(_rigidbody.rotation, Quaternion.Euler(newRotate), 1);
        _rigidbody.MoveRotation(rotate);
        Debug.Log("Rotation = " + rotate.eulerAngles);
        _startPosition = _endPosition;
    }


Почему то объект поворачивается не корректно я бы даже сказал немного хаотично. Всё что мне нужно это "прибавлять" некую дельту (скорость) к его повороту чтобы он поворачивался в нужном направлении и делать это через Rigitbody чтобы это рассчитывалось физикой для избежание форс мажором в виде прохождения объектов друг через друга насквозь. Думаю проблема в моих "кватернионных преобразованиях" .
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
@makwd
Можете прислать папку с проектом я может быть найду в чем причина
контактос тг и дискордус
дс: пон#7575, telegram: @belaryskomoynia
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы