gpt4 book ai didi

javascript - 我如何在 ThreeJS 中访问这些变量?

转载 作者:行者123 更新时间:2023-12-03 10:47:24 26 4
gpt4 key购买 nike

我已经开始使用 javascript 和 ThreeJS 来完成一个项目。它涉及创建一堆球体。为此,我使用 for 循环和一个函数来创建球体。然而,我不明白的一件事是如何在函数/循环内创建变量后访问它们。在函数内部,正在创建一个名为 sphere 的变量,但我如何访问该特定的 sphere 变量

是否可以使用函数输入作为变量名?像这样:函数 myFunction(name) { 变量名称 = 3}这样当我在函数中输入 numberThree 时,它​​会创建一个名为 numberThree 的变量?

for(i=1; i< 5; i++)
{
var sphere = new THREE.Mesh(new THREE.SphereGeometry(10, 100, 100), new THREE.MeshNormalMaterial());
sphere.overdraw = true;
scene.add(sphere);
sphere.position.x = i * 20;
}
function drawSphere(size, x, y)
{
var sphere = new THREE.Mesh(new THREE.SphereGeometry(size, 100, 100), new THREE.MeshNormalMaterial());
sphere.overdraw = true;
scene.add(sphere);
sphere.position.x = x;
sphere.position.y = y;
}

最佳答案

您的代码似乎正在创建一个新的球体,然后每次将其添加到场景中。为了能够单独访问它们,您必须首先将球体设为全局数组,然后将它们添加到场景中,如下所示:

 var sphere = [];
for(i=0; i< 4; i++) // should count from zero
{
sphere[i] = new THREE.Mesh(new THREE.SphereGeometry(10, 100, 100),new THREE.MeshNormalMaterial());
sphere[i].overdraw = true;
scene.add(sphere[i]);
sphere[i].position.x = i * 20;
}

然后您可以通过专门调用来访问每个球体。例如,您可以更改第三个球体的颜色:

  sphere[2].material.color.setHex(0xFFFFF);

关于javascript - 我如何在 ThreeJS 中访问这些变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28523631/

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