Raycaster没有使用组合相机 - 三个j

时间:2016-10-24 10:16:27

标签: javascript three.js

我正在构建一个类似threeJs编辑器的应用程序。我有四个摄像头,每个摄像头的名称不同,并且位置不同,其中一个摄像头是

cameras['home'] = new THREE.CombinedCamera(window.innerWidth / 2, window.innerHeight / 2, 70, 1, 1000, -500, 1000);
cameras['home'].lookAt(centerPoint);

当我使用raycaster处理选定的相机时

raycaster.setFromCamera(mouse, selectedCamera);
var intersects = raycaster.intersectObjects([sceneObjects], true);

它抛出了我的错误

'THREE.Raycaster: Unsupported camera type.'

我从

编辑了Three.js
Raycaster.prototype = {
...
setFromCamera: function ( coords, camera ) {
    if ( (camera && camera.isPerspectiveCamera) ) {

到下面

if ( (camera ) ) {

即使雷卡斯特工作正常。我只是想知道为什么相机不能用于CombinedCamera

1 个答案:

答案 0 :(得分:1)

我认为原因就在错误信息中:Raycaster代码目前不支持CombinedCamera。只是提醒一下,CombinedCamera实际上是两个摄像头:一个是正视和一个透视。

您可以尝试使用setFromCamera(selectedCamera.cameraP)或setFromCamera(selectedCamera.cameraO),但我还没有对此进行测试。