我还是个新手...

main.js

import * as THREE from 'three'
import Box from './classes/Parts.js'
const box = new Box()
scene.add(box)

Parts.js

class Box {
  constructor() {
    this.geom = new THREE.BoxGeometry(2, 2, 2);
    this.mat = new THREE.MeshBasicMaterial({
      color: 0xff0000
    });
    this.mesh = new THREE.Mesh(this.geom, this.mat);
  }
}
export default Box;
This is something similar to this

但我得到这个错误:THREE.Object3D.add: object not an instance of THREE.Object3D.

我做错了什么?

推荐答案

只能将自定义对象添加到从THREE.Object3D派生的场景图中.你的Box班不是这样的.按如下方式重写代码:

class Box extends THREE.Mesh {
  constructor() {
    const geom = new THREE.BoxGeometry(2, 2, 2);
    const mat = new THREE.MeshBasicMaterial({
      color: 0xff0000
    });
    super(geom,mat);
  }
}
export default Box;

Javascript相关问答推荐

JavaScript:循环访问不断变化的数组中的元素

*ngFor和@代表输入decorator 和选角闭合

使用axios.获取实时服务器时的404响应

如何解决CORS政策的问题

为什么我的列表直到下一次提交才更新值/onChange

无法检测卡片重叠状态的问题

在带有背景图像和圆形的div中添加长方体阴影时的重影线

如何在ASP.NET中使用Google Charts API JavaScript将条形图标签显示为绝对值而不是负值

如何发送从REST Api收到的PNG数据响应

使用VUE和SCSS的数字滚动动画(&;内容生成)

Next.js中的服务器端组件列表筛选

是否可以将Select()和Sample()与Mongoose结合使用?

匹配一个或多个可选重复的特定模式

将多个文本框中的输出合并到一个文本框中

无法检索与Puppeteer的蒸汽游戏的Bundle 包价格

如何在脚本编译后直接将RxJ模块导入浏览器(无需Angel、webpack、LiteServer)

重新呈现-react -筛选数据过多

如何让SVG图标在被点击和访问后改变 colored颜色 ,并在被访问后取消点击时恢复到原来的 colored颜色 ?

为什么这个最小Angular 的Licial.dev设置不起作用?

JSON Web令牌(JWT)错误:RSA密钥对的签名无效