刚开始直接用three.js的建模函数THREE.Mesh制造的模型可以用raycaster实现碰撞检测。而在利用blender绘制了一个模型用three.js加载后发现碰撞检测功能失效了。
最后发现是子物体的问题。
原先
var collisionResults = ray.intersectObjects(collidableList);
改为
var collisionResults = ray.intersectObjects(collidableList, true);
即可。
推测是绘制的模型中自带了child。