gpt4 book ai didi

qt - QML,将多个网格组合成单个实体

转载 作者:行者123 更新时间:2023-12-04 13:19:23 25 4
gpt4 key购买 nike

我正在尝试通过合并三个 ConeMeshes 来创建可自定义的 Qt3D 组件成为一个单一的实体。用户必须能够与自定义实体交互,所以我添加了一个 ObjectPicker到文件。通常,我会使用预定义的缩放 .obj 文件,但我的经理希望 Qt 直接绘制对象。

我想要组合的两个网格在单独的 qml 文件中定义,因此我可以在我的 Scene3D 中调用它。

Entity {
ObjectPicker {
id: combinedPicker
}
ConeMesh {
id: conemesh1
...
}
ConeMesh {
id: conemesh2
...
}
Transform {
id: conetransform1
}
Transform {
id: conetransform2
}
Entity {
components: [conemesh1, conetransform1, conemesh2, conetransform2, combinedPicker]
}
}

我将网格放在一起的方法是将它们作为组件包含在单独的实体范围内,如最后一行所示。但是这种方法只呈现 components 数组中的最后一个条目。上面,那将是 conmesh2。

以前我尝试创建多个实体实例,并为每个实例传递 ObjectPicker 的 id,
Entity {
components: [conemesh1, conetransform1, combinedPicker]
}
Entity {
components: [conemesh2, conetransform2, combinedPicker]
}

但根据 ObjectPicker 的文档,对象选择器并不打算由多个组件共享。

所以我的问题是:在 Qml 中将多个网格合并为一个网格时,正确的方法是什么?

最佳答案

我通过“分解”对象选择器元素解决了这个问题,有效地使其成为网格实体的兄弟。

 Entity {
components:
[conePicker]
Entity {
id: pipeTopEntity
components: [coneMeshTop, coneTransformTop, floorMaterialTop]
}
Entity {
id: pipeBodyEntity
components: [coneMeshBody, coneTransformBody, floorMaterialBody]
}
Entity {
id: pipeBotEntity
components: [ coneMeshBot, coneTransformBot, floorMaterialBot]
}
}

关于qt - QML,将多个网格组合成单个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52700431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com