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 чтобы это рассчитывалось физикой для избежание форс мажором в виде прохождения объектов друг через друга насквозь. Думаю проблема в моих "кватернионных преобразованиях" .