如何修改Three.js轨道控件的panUp功能?

时间:2013-08-29 11:25:47

标签: javascript controls three.js

我目前正在尝试修改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功能似乎在向任何方向移动都没有问题。

2 个答案:

答案 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 );