gpt4 book ai didi

javascript - ThreeJS 中克隆一组对象的函数?

转载 作者:行者123 更新时间:2023-12-03 05:44:53 28 4
gpt4 key购买 nike

我正在尝试为我的类(class)创建一个场景,其中必须克隆一组对象(模型)并将其显示在随机位置。我为此创建了一个函数,但不幸的是,它只能将同一个对象从一个地方传输到另一个地方。我需要添加更多对象而不是移动相同的对象,但遗憾的是我找不到有关它的任何信息。我尝试克隆,但失败了:/稍后,我将不得不一一删除这些模型,所以如果有人也能就此提供建议,我将不胜感激。

这是我的代码:

this.addmodel = function() {
scene.add(model);
model.name = "model-" + scene.children.length;
model.position.x= -20 + Math.round((Math.random() * 40));
model.position.y= Math.round((Math.random() * 5));
model.position.z= -17.5 + Math.round((Math.random() * 35));
this.numOfObjects = scene.children.length;
}

最佳答案

示例对象:

function Model(){
this.mesh = new THREE.Mesh(new THREE.BoxGeometry(1, 1, 1),new THREE.MeshBasicMaterial({color:"red"}));
this.addModel = function(){
var newModel = this.mesh.clone();
newModel.name = "model-" + scene.children.length;
newModel.position.x= -20 + Math.round((Math.random() * 40));
newModel.position.y= Math.round((Math.random() * 5));
newModel.position.z= -17.5 + Math.round((Math.random() * 35));
scene.add(newModel);
}
};

然后创建一个实例并调用其方法:

  var cubeModel = new Model();
for(var i = 0; i < 10; i++){
cubeModel.addModel();
}

jsfiddle示例

关于javascript - ThreeJS 中克隆一组对象的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40369782/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com