每次在Verold中单击对象时,我都试图复制它。我已经将对象选择器附加到场景中,并成功地触发了打印到控制台的功能。
我尝试过这段代码,但是我得到了一个Type错误--无法读取未定义的属性。
var xxx = this.getEntity().clone();
var threeDataxxx = xxx.getThreeData();
threeDataxxx.position.x += Math.random() * 5;发布于 2014-11-10 14:04:15
clone()方法是异步的(因为如果要在服务器上创建对象的持久副本,则使用相同的方法)。这个函数和Verold中的许多函数一样,以一个“options”对象作为参数。在这里,您需要指定“成功”回调方法,如下例所示。获得克隆后,需要使用addChild()方法将其添加到场景层次结构中。这将自动触发要加载的克隆对象。
var parent = this.getEntity().getParentObject();
this.getEntity().clone( {
success: function( newEntity ) {
parent.addChild( newEntity );
var position = newEntity.getPosition();
position.x += Math.random() * 10;
newEntity.setPosition( position.x, position.y, position.z );
}
});多个步骤是有用的,因为您可能希望克隆几个对象,并让它们准备好在以后添加到场景中。
当然,如果不需要克隆对象具有组件或VeroldObject的任何其他功能,则始终可以获取threeData,然后使用Three.js的克隆()方法。
希望这能有所帮助。
https://stackoverflow.com/questions/26831525
复制相似问题