Вам не нужно вычислять какие-либо интегралы.Вместо этого при каждом обновлении умножьте Time.deltaTime
на значение из этого кадра в arduino, чтобы получить дельту курсора для этого кадра.
Для выпуска Windows вы можете использовать win32 API, чтобы соответствующим образом установить положение мыши.(за этот ответ от zachwuzhere на сайте Unity QA)
В целом это может выглядеть так:
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
private float horizontalFromArduino;
private float verticalFromArduino;
public float sensitivity;
void Update()
{
float newXPos = Input.mousePosition.x + horizontalFromArduino * sensitivity * Time.deltaTime;
newXPos = Mathf.Clamp(0,Screen.width);
float newYPos = Input.mousePosition.y + verticalFromArduino * sensitivity * Time.deltaTime;
newYPos = Mathf.Clamp(0,Screen.height);
// y=0 is top of screen in windows coordinates, so we subtract newYPos from Screen.height
SetCursorPos(newXPos, Screen.height - newYPos);
}