我每次在Verold中点击它时都试图复制一个对象。我已将对象选择器附加到场景并成功触发了一个打印到控制台的功能。
我已经尝试过这段代码,但是我遇到了类型错误 - 无法读取未定义的属性。
var xxx = this.getEntity().clone();
var threeDataxxx = xxx.getThreeData();
threeDataxxx.position.x += Math.random() * 5;
答案 0 :(得分:2)
clone()
方法是异步的(因为如果在服务器上创建对象的持久副本,则会使用相同的方法)。与Verold API中的许多功能一样,此功能采用了'选项'对象作为参数。在这里,您需要指定成功'回调方法如下例所示。获得克隆后,需要使用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&# 39; s clone()方法。
希望有所帮助。