我通过 this.scene.getObjectByName("MeshName").material
获取可视化的 Material 元素,元素存在,一切正常,当我打印它时,它可以工作。我需要它来改变不透明度。但问题是我收到“属性‘ Material ’在‘Object3D’类型上不存在”错误,因此我无法运行 ng build,我需要使用 //@ts-ignore
忽略它。有人知道为什么会这样吗?
最佳答案
我认为问题在于getObjectByName()
的返回类型是Object3D
。并且这种类型的对象没有 material
属性。
因此,如果您确定“MeshName”是网格体的名称,则必须将返回的对象转换为 Material ,然后访问 Material
:
(this.scene.getObjectByName("MeshName") as THREE.Mesh).material
关于typescript - 三个JS。 "Property ' 类型 'Object3D' 上不存在 Material “使用 getObjectByName 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66818245/