简体中文
主题
简体中文
主题
相关参考:
组合(Group)适合把多个对象当成一个整体来管理。
组合也是3D对象,因此3D对象支持的功能也都可以使用。
因为只是一种封装容器,因此组合不能被直接看见。
普通的3D对象,本质上也是一种组合。也可以使用addChild、removeChild和getChildren等功能。
只是在代码可读性上,更建议直接使用Group,而不是普通3D对象。
const group = await api.createGroup();
await api.add(group);const image = await api.getObject('image');
const model = await api.createGltfModel(glbBuffer);
await api.add(model);
await api.addChild(group, image);
await api.addChild(group, model);之后你对 group 的位置、旋转、缩放修改,会整体影响其子对象。
组合可以继续挂到组合下,形成多层次的树状结构。
如果你在场景里动态加了多张图片或多个模型,希望它们一起移动,组合会非常实用。
有些业务不方便把所有层级都提前放进场景编辑器,也可以在运行时通过 createGroup() 组装一棵简单的层级树。
const children = await api.getChildren(group);或按属性查找:
const child = await api.getChildByProperty(group, 'name', 'title-image');await api.removeChild(group, image);对象只是从组合中移除,和remove()类似,不会销毁资源,后续还可以继续add() 或 addChild()。
如果要彻底移除,则需要执行destroyObject()。