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