我正在制造一些敌人,我希望所有人在渲染之前更新他们的位置。
我可以创建一个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);
}
答案 0 :(得分:3)
以下是定义onBeforeRender
时要遵循的模式:
object.onBeforeRender = function( renderer, scene, camera, geometry, material, group ) {
// your code here
this.position.add( this.velocity );
};