我有一个固定位置的透视摄像头,可通过键盘输入绕所有3个轴旋转。在随机的时间间隔内,无论用户输入如何,无论相机在哪个方向看,我都需要将物体放置在相机的视野范围内。物体还需要偏离相机中心的特定x和y距离,并偏离相机位置的特定z距离。我不能使用camera.addChild,因为一旦添加了对象,我需要通过补间移动对象,而不依赖于摄像机的移动。
如何做到这一点?
答案 0 :(得分:3)
您想要将一个点从相机空间转换为世界空间。
在相机的坐标系中,相机位于原点,并向下看其负z轴。
将物体放在相机前面(在相机的坐标系中)。
object.position.set( x, y, - z ); // z is the distance in front of the camera, and is positive
现在,将对象的位置从相机空间转换为世界空间:
object.position.applyMatrix4( camera.matrixWorld );
three.js r.69