Three.js Raycaster没有找到intersect,即使它应该找到

Three.js Raycaster没有找到intersect,即使它应该找到,three.js,Three.js,我正在使用光线投射器将点投影到面上。但不知何故,这似乎不起作用。即,获取点(25,25300)和方向(0,0,-1),光线投射器找不到位于(0,0,0)的大小为(30,30,30)的长方体并与其相交。我做错什么了吗 var geometry = new THREE.BoxGeometry(30, 30, 30); var material = new THREE.MeshBasicMaterial( ); var mesh = new THREE.Mesh(geometry, material)

我正在使用光线投射器将点投影到面上。但不知何故,这似乎不起作用。即,获取点(25,25300)和方向(0,0,-1),光线投射器找不到位于(0,0,0)的大小为(30,30,30)的长方体并与其相交。我做错什么了吗

var geometry = new THREE.BoxGeometry(30, 30, 30);
var material = new THREE.MeshBasicMaterial( );
var mesh = new THREE.Mesh(geometry, material);
var dir = new THREE.Vector3(0,0,-1);
var p = new THREE.Vector3(25,25,300);
var raycaster = new THREE.Raycaster(p, dir);
var intersects = raycaster.intersectObjects(mesh); // returns an empty array

您的示例有两个问题,第一个问题是您使用的方法是采用数组作为参数的
raycaster.intersectObjects
,而您应该使用采用对象的
raycaster.intersectObject

其次,您缺少网格

试试这些值:
var p=new THREE.Vector3(15,15300)取而代之。下图说明了该问题


您的示例有两个问题,第一个问题是您使用的方法是采用数组作为参数的
raycaster.intersectObjects
,而您应该使用采用对象的
raycaster.intersectObject

其次,您缺少网格

试试这些值:
var p=new THREE.Vector3(15,15300)取而代之。下图说明了该问题