0
我使用三组对象的推车
var dist = -100;
var vec = new THREE.Vector3(0, 0, dist);
vec.applyQuaternion(camera.quaternion);
object.position.copy(vec);
object.lookAt(camera.position);
这个作品真的很好配售对象在镜头前。
我现在不得不旋转摄像头(它的VR视频播放器)来设置它的起始位置,并做到这一点,仍然与WebVR样板一起工作,我将视频添加到小车对象并旋转。
dolly = new THREE.Group();
dolly.position.set(0, 0, 0);
scene.add(dolly);
camera.up.set(0, 1, 0);
dolly.add(camera);
而物体现在不在摄像机前面。我试图将小车旋转应用到矢量以说明该角度。
var rotation = new THREE.Euler().setFromQuaternion(camera.quaternion, camera.rotation.order);
rotation.y += dolly.rotation.y;
var quat = new THREE.Quaternion().setFromEuler(rotation, camera.rotation.order);
vec.applyQuaternion(quat);
这主要适用于摄像机是特定角度但有时不是对象也在其x轴上旋转的情况。
我假设rotation.y += dolly.rotation.y
;是错误的,但我不确定合并数字的更好方法。
你可以只直接添加你的对象到'camera'对象...'camera.add(对象);'这将物体放置在相机空间内,它将自动跟随相机的移动和旋转。 – TheJim01
谢谢@ TheJim01,是的,我之前是这么做的,但是该项目有可选择的元素,所以相机需要能够看到不同的部分。如果我不得不努力回避,我只是想避免它。 – user5839