我有一个
function createControls(){ return new THREE.TrackballControls( camera,domElement );}
用创建
THREE.TrackballControls=function(object, domElement){.....}
controls = createControls(camera, renderer.domElement);
restoreView(controls, vars);
addDefaultKeyEventListener();
调整webgl容器的大小后,控件将无法正常工作。准确地说,是发生了以下事件:用户在屏幕上单击时,一个黄色的球会移动到3d空间中平原上的确切位置。在调整大小事件之后,球会移动到一个位置,该位置的偏移量与我认为与调整大小的比例有关。当我尝试重新定义控件变量时,它崩溃了。
如何更新具有新的camera和renderer.domElement输入变量的控件?
最佳答案
TrackballControls
为此提供一种方法:handleResize()
。因此,如果您使用创建控件
controls=new THREE.TrackballControls(...);
您只需要添加
controls.handleResize();
进入在
resize
事件中调用的函数。