有谁知道我如何旋转 CannonJS(物理库)CANNON.RigidBody
?我试图让物体随着相机旋转,所以两者都面向同一个方向。我知道我必须修改四元数,但这不能正常工作:
mPlayer.objectBody.quaternion.set(0, mPlayer.yawObject.rotation.y, 0, 1);
它还会更改对象的 Y 位置,而不仅仅是旋转。
这是一个演示(WASD 移动红色矩形 - 这是我要旋转的)
这是主脚本
目前它会根据物理原理自动旋转。谢谢您的帮助!
编辑:
我现在有点工作了。但它并没有完全旋转(整个 360 度),而且它旋转的角度也不完全正确。如果有人可以看看有什么问题,我将不胜感激!:)
与以前相同的链接,但矩形/主体现在位于相机下方,因此我可以查看它是否正确旋转。
我添加了此代码以使其旋转:
mPlayer.objectBody.quaternion.y = mPlayer.yawObject.rotation.y;
mPlayer.objectBody.quaternion.w = 1;
mPlayer.objectBody.quaternion.normalize();
为了节省您浏览代码的时间,mPlayer.yawObject.rotation.y
在 MouseMove 事件中设置:
var onMouseMove = function ( event ) {
var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0;
var movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0;
mPlayer.yawObject.rotation.y -= movementX * 0.002;
mPlayer.pitchObject.rotation.x -= movementY * 0.002;
mPlayer.pitchObject.rotation.x = Math.max( - PI_2, Math.min( PI_2, mPlayer.pitchObject.rotation.x ) );
};
再次感谢!