input事件在统一更新function上变慢

我有这个运行在Unity上的Update()。 我正在尝试在游戏上创建一个页面滑动function,但问题是当我释放鼠标时,打印“拖动”到“结束拖动”时会有半秒的延迟。

有没有人有更快地注册input事件的方法?

void Update() { if(isDragOn) { if(Input.GetMouseButton(0)) { print ("dragging"); //moveContainers((Input.mousePosition.x - mouseLastPosition) * 0.01f); mouseLastPosition = Input.mousePosition.x; } else if(Input.GetMouseButtonUp(0)) { print ("end drag"); isDragMoved = false; isDragOn = false; endDrag(); } else if(Input.touchCount > 0) { if(Input.GetTouch(0).phase == TouchPhase.Moved) { //moveContainers(Input.GetTouch(0).deltaPosition.x); } else if(Input.GetTouch(0).phase == TouchPhase.Ended) { isDragMoved = false; isDragOn = false; endDrag(); } } } } 

不会比Update ( 引用 )“更快”,每帧运行一次:

如果MonoBehaviour已启用,则每帧调用Update。

如果你的帧速率是每帧半秒,那么你会得到一个半秒的延迟。 如果您想要更快的响应,您将需要执行一些优化。 确保您的MonoBehaviour已启用,并且您没有运行Update作为协程的一部分。 你可以尝试创建一个新的项目,并把你的代码放到一个空的对象上。