aframe - 实体可以共享相同的材料吗?
问题描述
我有多个实体,我想共享相同的材料。因此,如果我对材质属性进行更改,则会在场景中使用该材质的所有实体上更新属性。
这可能吗?如果是这样,怎么办?
解决方案
手动创建材质并附加到网格:
var material = new THREE.SomeMaterial();
AFRAME.registerComponent('my-material', {
this.el.getObject3D('mesh').material = material;
});
<a-entity geometry my-material></a-entity>
然后您可以随时手动操作材质,它会自动应用于所有使用它的实体/网格(例如,material.color.set(0.5, 0.5, 0.5)
)。
mixin 方法也有效,但效率稍低且更抽象
推荐阅读
- ssas - 用于连接两个不同维度成员的 MDX 查询
- c# - 无法将 AD 模块加载到 powershell 脚本中
- ms-access - 在文本框中输入内容并按下按钮时,如何显示消息框?
- swift - 为标签设置布局常量后,它停止工作
- c# - 带定位夹的 SmoothDamp
- amazon-web-services - Docker 镜像推送到 ECS 时触发 AWS Lambda 函数
- python - 在 python 中读取 *.tar.gz 文件而不提取
- go - 如何将不遵守主要子文件夹约定的 Go 包的 v2.0.0 引用为模块
- python - Python 使用 with 子句打开或创建文件
- amazon-web-services - 共享存储 AWS EC2