Answers:
要模拟时滞,请使用循环缓冲区存储最后N帧的鼠标位置。每帧存储当前鼠标位置。在控件计算中,使用缓冲区中最早的鼠标位置而不是当前的鼠标位置。
我最终使用了协程,因为(根据我的理解),延迟将是恒定的,而不管运行游戏的设备的性能如何。
这是我的代码:
private IEnumerator DelayedInput()
{
Vector3 a = Input.acceleration;
Vector2 m = Input.mousePosition;
yield return new WaitForSeconds(delay);
accelerometer = Vector3.Lerp(accelerometer, a, Time.deltaTime * turnSpeed);
mouse = Vector2.Lerp(mouse, m, Time.deltaTime * turnSpeed);
}