三个js,在渲染功能之前。

时间:2017-04-22 19:27:10

标签: javascript three.js render

我正在制造一些敌人,我希望所有人在渲染之前更新他们的位置。

我可以创建一个update()函数,但我已经尝试将onBeforeRender()函数附加到所有这些函数上。

问题是没有任何反应。

这是我的代码,我不知道它失败了。

var i = 0; 
for(i =0; i < num_enemics; i++ ){
    //CLONE THE ENEMY FROM THE PROTOTYPE
    var enemic = dolent.clone(true);
    enemic.name = i.toString();
    enemic.visible = true; 

    //SPAWNS ON RENDER POSITION
    enemic.position.x = Math.random() *(40) - 20; 
    enemic.position.y = 0.7; 
    enemic.position.z = Math.random() * (28) - 14;

    self.veloicity = new THREE.Vector3(0.1,0,0);
    //FUNCTION TO BE CALLED BEFORE RENEDER
    enemic.onBeforeRender(function(){
        self.position.addVectors(self.position,self.velocity);
    });

    scene.add(enemic);
}

1 个答案:

答案 0 :(得分:3)

以下是定义onBeforeRender时要遵循的模式:

object.onBeforeRender = function( renderer, scene, camera, geometry, material, group ) {

    // your code here
    this.position.add( this.velocity );

};