0

在 Physijs 中,我创建了一个“保险杠”圆柱体网格,用于弹射球体。然后我克隆了网格,定位了克隆(对于这个例子,原始网格)并将它们添加到“地面”框,如下所示:

    // CREATE AND CLONE A BUMPER
bumper = new Physijs.CylinderMesh
(
    new THREE.CylinderGeometry( 5, 5, 7, 20, 80, false ),
    ground_material,
    0 // mass 
);

var Bumper01 = bumper.clone();
var Bumper02 = bumper.clone();

// POSITION THE CLONES AND THE ORIGINAL BUMPER 
Bumper01.position.set( -2, 4, -50 );
Bumper02.position.set( 2, 4, -10 );
bumper.position.set( 0, 4, 30 );

// ADD THE CLONES AND THE ORIGINAL BUMPER TO THE GROUND CUBE
groundCube.add( bumper, Bumper01, Bumper02 );

scene.add( groundCube );

只有原来的保险杠功能,球体穿过克隆。

工作示例在这里

难道我做错了什么?“克隆”不打算在 Physijs 中以这种方式工作吗?

我发现了一个错误吗?

现在,我将为我需要的每个保险杠创建新的 Phsyjs 网格......

-马尔科索

4

1 回答 1

0

我想我知道你在说什么。

内部clone()函数创建一个新的THREE.Mesh,而不是Physijs一个。THREE.Mesh要解决这个问题,只需创建一个将 封装到 a中的克隆函数Physijs.CylinderMesh

function cloneBumper(){
    var obj = new Physijs.CylinderMesh(bumper.clone().geometry, bumper.material, bumper.mass);
    return obj;
}

完毕!您的保险杠现在应该被正确克隆了!

于 2015-02-25T22:56:01.447 回答