You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ThreeJS如何实现仅背景沿左右方向移动,上下方向不跟随车辆运动?

问题原因

当前背景会跟随汽车上下移动的核心原因是,你的相机位置和看向的目标点完全绑定了汽车的所有轴位移,只要取消相机对汽车X轴(你代码里定义的上下移动方向)的跟随逻辑,保留Z轴(左右移动方向)的跟随逻辑即可实现需求。

具体修改方法

找到animate函数中设置相机参数的代码段,替换为如下逻辑即可:

toycar.rotation.x = (angle + Math.PI);
var relativeCameraOffset = new THREE.Vector3(-1600, 400, 0);
var cameraOffset = relativeCameraOffset.applyMatrix4(toycar.matrixWorld);
// 仅保留Z、Y方向跟随,X方向固定为初始偏移值,不跟随汽车上下移动
camera.position.x = relativeCameraOffset.x * 0.5; 
camera.position.y = cameraOffset.y;
camera.position.z = cameraOffset.z;
// 看向的点固定X坐标为0,仅跟随汽车的Y、Z位移,保证背景X方向不会偏移
camera.lookAt(new THREE.Vector3(0, toycar.position.y, toycar.position.z));

调整后左右移动的原有逻辑完全保留,上下移动时仅汽车在视野内上下位移,网格背景等固定场景元素不会跟随偏移。


内容的提问来源于stack exchange,提问作者Sami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 15:15:03