私はPointerLockControls(full modified code)を使ってThree.jsプロジェクトに取り組んでいます。私はplayehrの衝突検出を実装したいと思います。私は新しいPhysijsシリンダーオブジェクトを作ることによって、この程度だろうし、その後PointerLockControlsにカメラでそれを一緒に渡している:PointerLockControlsでThree.js PointerLockControlsとPhysisjsの衝突検出
var player = new Physijs.CylinderMesh(new THREE.CylinderGeometry(2, 2, 10, 32) , playerMaterial);
player.position.set(0, 5, 0);
player.addEventListener('collision', handleCollision);
scene.add(player);
controls = new PointerLockControls(camera, player);
、私はそれから渡されたプレイヤーに外部オブジェクト(ヨー回転ハンドラ)を添付しますワールドにプレーヤーオブジェクトを移動します。
velocity.x -= velocity.x * 10 * dt;
velocity.z -= velocity.z * 10 * dt;
velocity.y -= 9.8 * 20 * dt;
if (moveForward) velocity.z -= 180 * dt;
if (moveBackward) velocity.z += 180 * dt;
if (moveLeft) velocity.x -= 180 * dt;
if (moveRight) velocity.x += 180 * dt
player.translateX(velocity.x * dt);
player.translateY(velocity.y * dt);
player.translateZ(velocity.z * dt);
しかし、テスト時に、プレイヤオブジェクトと床を介してカメラ相、またはその両方、移動Yがコメントアウトされている場合、何もしないが、私はそれらを移動しようとすると、jerkily場所に振動します。
これを設定するのは間違っていましたか?私の問題は、プレーヤーオブジェクトにyawObjectを付けて、それを正しい方法で移動して自分の設定で衝突の検出を行うことから来ているようです。