第一人称视角怎么计算触摸点与精灵碰撞

COCOS版本是3.10,类似第一人称的3D射击游戏,摄像机不动,在3D地型图上,不断随机产生的3D精灵怪物在地型图上由远到近向摄像机方向移动,在update()中用下面的代码,使精灵向目的地前进
Vec3 curPos = sprite3d->getPosition3D();
Vec3 newFaceDir = sprite3d->targetPos - curPos;
newFaceDir.normalize();
Vec3 offset = newFaceDir * sSpeed * dt;
curPos += offset;
sprite3d->setPosition3D(curPos);
程序捕捉到触摸事件,用了TestCPP中的关于射线与OBB碰撞的检测方法,都是无法检测到实际的碰撞,后来调试中发现,精灵在移动过程中AABB的大小是不变的,只是位置随着精灵移动位置改变,但在摄像机在屏幕上的投影是越来越大的,怎么准确地检测触摸点是否与精灵碰撞?

已经解决,原来要用到摄像机的unproject来确定Ray