Three.js Raycaster没有找到intersect,即使它应该找到
我正在使用光线投射器将点投影到面上。但不知何故,这似乎不起作用。即,获取点(25,25300)和方向(0,0,-1),光线投射器找不到位于(0,0,0)的大小为(30,30,30)的长方体并与其相交。我做错什么了吗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)
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)代码>取而代之。下图说明了该问题