独立游戏吧 关注:59,029贴子:343,782
  • 1回复贴,共1页

笨蛋萌新正被代码残酷的折磨...有没有大佬帮我看下脚本

取消只看楼主收藏回复

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

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

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


IP属地:北京1楼2024-05-15 16:13回复
    我发现射线平面方法为什么拉近后拖拽缓慢,是因为平面创建的太近了,镜头一向前移动,平面就在摄像头身后了...太笨蛋了。
    这个方法替代第一个方法后,跟第二个方法并不冲突,可以用。但是为什么镇楼的第一个方法会跟第二个方法打架呢,真是令人头秃。


    IP属地:北京来自Android客户端5楼2024-05-15 17:44
    回复