是否可以在将特定主体添加到世界后删除该特定主体的行为?例如,你有一个已经遭受重力,碰撞行为的坦克......然后你通过将火箭与坦克相撞来杀死它,那么你仍然想要保持坦克的身体在世界上但不会能够再次碰撞。
答案 0 :(得分:1)
这取决于你想要实现的方式,但是。最简单的方法是在碰撞检测行为中使用.applyTo
方法。
var collidingBodies = [];
collidingBodies.push( tank ); // could add more too...
var collisionDetection = Physics.behavior('body-collision-detection');
collisionDetection.applyTo( collidingBodies );
world.add( collisionDetection );
// elsewhere...
// when explosion happens
var idx = collidingBodies.indexOf( tank );
if ( idx > -1 ){
collidingBodies.slice( idx, 1 );
collisionDetection.applyTo( collidingBodies );
}
碰撞检测应用于一组对象(在数组中)。当坦克爆炸时,将其从阵列中移除并将该阵列传回.applyTo
以更新行为。
您还可以使用Query functionality来帮助更好地组织阵列,但这是一般的想法。