gpt4 book ai didi

javascript - three.js 控制台错误 "scene.getObjectByName(...) is undefined"但一切似乎都很好?

转载 作者:行者123 更新时间:2023-11-30 20:53:27 26 4
gpt4 key购买 nike

我收到控制台错误:

TypeError: scene.getObjectByName(...) is undefined 

在这两行上:

scene.getObjectByName('teapot').rotation.x += 0.005;
scene.getObjectByName('teapot').rotation.y += 0.005;

我加载对象的相关代码如下所示:

var loader = new THREE.OBJLoader();
loader.load('obj/teapot.obj', function(object) {

object.traverse(function(child) {
if (child instanceof THREE.Mesh) {
child.material = phongMaterial;
}
});

object.scale.x = 2;
object.scale.y = 2;
object.scale.z = 2;
object.name = 'teapot';

scene.add( object );
});

场景本身只是一个旋转的简单茶壶,在我看来一切都在渲染和表现。

我只是想知道为什么会出错?

最佳答案

var loader = new THREE.OBJLoader();
loader.load('obj/teapot.obj', function(object) {

object.traverse(function(child) {
if (child instanceof THREE.Mesh) {
child.material = phongMaterial;
}
});

object.scale.x = 2;
object.scale.y = 2;
object.scale.z = 2;
object.name = 'teapot';

scene.add(object);
scene.getObjectByName('teapot').rotation.x += 0.005;
scene.getObjectByName('teapot').rotation.y += 0.005;
});

您正在获取 scene.getObjectByName('teapot') == undefined 因为您在将茶壶对象添加到场景之前调用它。在加载回调中调用它,这样您将获得茶壶对象,然后向其添加旋转。

关于javascript - three.js 控制台错误 "scene.getObjectByName(...) is undefined"但一切似乎都很好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47919285/

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