我希望直接在脚本中执行的代码和在工作者中执行的代码都是相同的。
var raycaster = new THREE.Raycaster();
raycaster.setFromCamera( m, camera );
我已经通过控制台转储检查过了
console.log(JSON.stringify(camera));
console.log(JSON.stringify(m));
m
和camera
似乎都一样。
但是在工人那里
console.log(JSON.stringify(raycaster.ray));
产生此:
{
"origin": {
"x": 0,
"y": 0,
"z": 0
},
"direction": {
"x": 0.03775438809497666,
"y": -0.048541356122112495,
"z": -0.9981073804583355
}
}
并在脚本中生成以下内容:
{
"origin": {
"x": 0,
"y": 3.061616997868383e-15,
"z": 50
},
"direction": {
"x": 0.03775438809497641,
"y": -0.048541356122112224,
"z": -0.9981073804583351
}
}
我认为这是随后对raycaster.intersectObjects
的调用产生不同结果的原因。
我看了Raycaster.js中的代码,看来setFromCamera与2d点和摄影机无关。
有任何线索吗?