问题描述
我正在将Orbit控件与AFrame一起使用。当我平移对象,然后使用鼠标左键旋转它时,它不会围绕其新中心旋转。它仍然绕着0,0旋转。
如何实现为Orbit控件设置新目标,以便在用户平移然后旋转/缩放时,相机应围绕新目标旋转和缩放?
我是AFrame和Three js的新手。到目前为止,这是我在有限的知识基础上尝试过的。
var entity_3dModel = document.createElement("a-entity");
scene.appendChild(entity_3dModel);
entity_3dModel.setAttribute("modify-materials","");
entity_3dModel.setAttribute("click","");
entity_3dModel.setAttribute("gltf-model",'url(' + models_Path[current_Learning_Number] + ')');
entity_3dModel.setAttribute('scale',"1 1 1");
entity_3dModel.setAttribute("id","Model");
entity_3dModel.setAttribute("shadow","cast : true");
entity_3dModel.setAttribute("position","0 0 0");
entity_3dModel.setAttribute("class","clickable");
entity_3dModel.setAttribute("cursor","rayOrigin: mouse");
entity_3dModel.setAttribute("debug-cursor","true");
entity_3dModel.setAttribute("foo","");
AFRAME.registerComponent("foo",{
init: function() {
this.el.addEventListener('mousedown',(captureEvent) => {
$(document).on("contextmenu",this.el.object3D,function(e) {
if (captureEvent.detail.intersection)
PannedPointStart = new THREE.Vector3(captureEvent.detail.intersection.point.x,captureEvent.detail.intersection.point.y,captureEvent.detail.intersection.point.z);
console.log('PannedPointStart' + PannedPointStart);
e.preventDefault();
});
});
this.el.addEventListener('mouseup',(captureEventup) => {
$(document).on("contextmenu",function(e) {
if (captureEventup.detail.intersection)
PannedPointEnd = new THREE.Vector3(captureEventup.detail.intersection.point.x,captureEventup.detail.intersection.point.y,captureEventup.detail.intersection.point.z);
//console.log('Context Menu event has fired!' + captureEventup.detail.intersection.point.x);
console.log('PannedPointEnd' + PannedPointEnd);
if (PannedPointStart != PannedPointEnd)
ChangeTarget(PannedPointEnd);
e.preventDefault();
});
});
},remove: function() {
this.el.remove('mousedown');
this.el.remove('mouseup');
}
});
function ChangeTarget(centerPoint) {
document.querySelector('#camera').setAttribute('orbit-controls','target',centerPoint);
}
此操作一次或两次,然后停止。可能是什么原因? 还有其他更简单的方法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)