作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到控制台错误:
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/
如何在遍历函数的父/子案例中使用 *.name 属性?oLoader.load() 是异步的。当我执行 object.traverse() 时,对象尚未加载。我该如何解决它? 这有效: var geo
我收到控制台错误: TypeError: scene.getObjectByName(...) is undefined 在这两行上: scene.getObjectByName('teapot').
我是一名优秀的程序员,十分优秀!