我目前正在尝试修改three.js'oribit控件的panUp函数的行为。
默认行为会导致相机在y轴上上下移动,我希望它在z轴上移入和移出。我希望它的行为与panLeft函数的行为方式相同,但只是针对不同的轴。
我尝试过修改panOffset:
panOffset.set( te[4], te[5], te[6] );
为:
panOffset.set( te[2], te[1], te[0] );
哪种作用在一定程度上,但似乎只允许相机在x和z轴上移动,而不是两者的组合。另一方面,panLeft功能似乎在向任何方向移动都没有问题。
答案 0 :(得分:0)
这是解决方案。我注意到我使用
做了一些工作panOffset.set(te[8],te[9],te[10]);
但这仍然导致相机沿y轴移动。我的目标是只沿着x和z移动,以便允许用户抓取并平移地图。解决办法是将y设置为0.应该早点看到!
panOffset.set(te[8],0,te[10]);
答案 1 :(得分:0)
我发现你的解决方案很接近但不太正确。你还在改变什么也不完全清楚。要使地图平移工作就像在地图上拖动一样,一种方法是在 OrbitControls.js 文件中更改单行源代码。
在第116行(ish),你需要改变这个......
v.set( te[ 4 ], te[ 5 ], te[ 6 ] );
对此:
v.set( -te[ 8 ] * 2, 0, -te[ 10 ] * 2 );