0

私は2つの箱を持っています。1 つは地面にスポーンし、もう 1 つはその上にドロップされます。重力がオンになっています。地面に置かれている一番下のボックスで衝突イベントリスナーを起動させようとしています。ただし、何も記録されません。

var c = new Physijs.BoxMesh( new THREE.CubeGeometry( 5, 5, 5 ), new THREE.MeshBasicMaterial({ color: 0x888888 }) );
c.__dirtyPosition = true;
c.position.set(10, 0,-5);

c.addEventListener('collision', function(object){
    console.log("hello world"); // NOT FIRING
});

scene.add(c);

var p = c.clone();
p.__dirtyPosition = true;
p.position.y = 50;
scene.add(p);

何が間違っているのかわかりません - 原因__dirtyPositionでしょうか?

編集: clone()2番目のボックスを新たに作成せずにテストしましたが、違いはありません。

編集 2: シミュレーションが正常に実行されることに言及する価値があります。リスナーを動作させることができません。

4

1 に答える 1

1

関連する GitHub の問題

cloneメソッドはPhysijsではなく THREEjsの一部のようです。したがって、コードは物理メッシュではなく、物理マテリアルのクローンを作成するだけです。で行ったのと同じコードを使用して、別のものを作成する必要があります。BoxMeshc

于 2016-01-24T13:10:45.343 に答える