在完成了一段时间的相机移动后,是时候将移动添加到我的three.js项目中了。首先,我只是尝试使用camera.translateZ(movementSpeed),但这会让相机飞起来,我想将移动限制在x和z轴上。基本上,我计划简单地使用相机y旋转的余弦和正弦来找到z和x的速度。这在旋转的前半部分工作得很好,但在后半部分停止。有没有更好的方法来做到这一点,或者我能以某种方式修复它?
你可以在http://jsfiddle.net/zLa78yqw/2/上找到它的小提琴,请注意,我添加了一个球,它显示了前进将相机落在哪里。
我计算增量z和x的代码是:
var zvel=Math.cos(camera.rotation.y);
var xvel=Math.sin(camera.rotation.y);
testBall.position.z=camera.position.z-zvel*2;
testBall.position.x=camera.position.x-xvel*2;请帮帮忙,我已经被困在这件事上好一阵子了。
TLDR:我需要帮助让3js中的对象向前移动,而不是向上移动。
发布于 2016-01-16 17:52:37
我认为你需要的不是camera.rotation.y,而是相机世界方向的方位角。
vector = camera.getWorldDirection();
azimuth= Math.atan2(vector.x,vector.z);https://stackoverflow.com/questions/29999931
复制相似问题