想做一个摄像机的脚本,在Update里调用了两个方法,第一个方法想实现鼠标中键拖拽摄像机:
========================================

========================================
Update里的第二个方法是用WASD控制摄像机移动的。代码如下:

当两个方法一起使用时,键盘控制时移动正常。
而中键拖拽画面时,松开中键会出现生硬的停顿,没有了平滑。
我猜在SmoothDamp还没有结束时,isPanning便设为false了,因此摄像机平滑移动的缰绳很快被第二个方法拉住了。
有什么办法可以兼容一下这两个方法吗?或者有什么其他的办法可以实现类似的功能吗?
我试了很多种办法,但还是不能完美解决这个问题。比如第一个方法改为新建一个平面后用射线监测鼠标移动,但当摄像机拉近时,移动变得很缓慢,不知道为什么。
还有我尝试在isPanning设为false前让它等待一个平滑移动的时间,或者监测原点到目标点的距离<一个小值才执行isPanning=false,但都没有成功。
此外,我还不确定试了下把SmoothDamp替换成lerp,但还是不行...
猪脑过载了。
========================================

========================================
Update里的第二个方法是用WASD控制摄像机移动的。代码如下:

当两个方法一起使用时,键盘控制时移动正常。
而中键拖拽画面时,松开中键会出现生硬的停顿,没有了平滑。
我猜在SmoothDamp还没有结束时,isPanning便设为false了,因此摄像机平滑移动的缰绳很快被第二个方法拉住了。
有什么办法可以兼容一下这两个方法吗?或者有什么其他的办法可以实现类似的功能吗?
我试了很多种办法,但还是不能完美解决这个问题。比如第一个方法改为新建一个平面后用射线监测鼠标移动,但当摄像机拉近时,移动变得很缓慢,不知道为什么。
还有我尝试在isPanning设为false前让它等待一个平滑移动的时间,或者监测原点到目标点的距离<一个小值才执行isPanning=false,但都没有成功。
此外,我还不确定试了下把SmoothDamp替换成lerp,但还是不行...
猪脑过载了。