我正在构建一个应用程序,例如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 ) ) {
即使Raycaster工作正常。我只是想知道为什么相机不适用于CombinedCamera
最佳答案
我认为错误消息中的原因就在这里:Raycaster代码当前仅不支持CombinedCamera。提醒一下,CombinedCamera实际上是2个摄像机:一个正交摄像机和一个透视摄像机。
您可以尝试使用setFromCamera(selectedCamera.cameraP)或setFromCamera(selectedCamera.cameraO),尽管我尚未对此进行测试。