在Reality Composer中无法选模型子物体,如何添加射线检测不可见碰撞盒?
解决Reality Composer中复杂模型的不可见碰撞触发区域问题
针对你遇到的复杂模型无法选择子物体作为按钮、外部导出碰撞体总有反射的问题,提供三个可行方案:
方案一:直接在Reality Composer内创建不可见触发碰撞体
这是最直接的方法,无需外部建模工具:
- 打开你的
.reality项目,从右侧资源库的「Collision」分类中,拖拽对应形状的碰撞体(比如Box Collision)到场景。 - 选中碰撞体,在检查器面板中:
- 将「Visibility」下的「Opacity」拉至0;
- 关闭「Cast Shadows」和「Receive Shadows」选项;
- 调整碰撞体的位置、缩放,完全覆盖需要触发点击的模型区域。
- 给该碰撞体添加「Button」行为,配置触发逻辑即可。这种碰撞体完全不可见,不会产生任何反射或阴影。
方案二:Blender导出无反射全透明碰撞体
如果必须用外部建模的碰撞体,按以下步骤设置材质:
- 在Blender中创建碰撞用的几何体(比如立方体),新建材质:
- 将「Surface」设为
Principled BSDF,把「Base Color」的Alpha值拉到0; - 把「Specular」(高光)拉到0,「Roughness」拉到1,「Metallic」设为0;
- 在材质「Settings」标签下,将「Blend Mode」改为
Alpha Blend,「Shadow Mode」设为None。
- 将「Surface」设为
- 导出GLTF时,勾选「Export Materials」,用Reality Converter转成USDZ后导入RC。此时碰撞体应该完全透明且无反射。
方案三:标记模型子物体为碰撞专用层
如果你的复杂模型子物体本身可以作为碰撞区域,无需额外创建几何体:
- 在Blender中选中目标子物体,打开物理属性面板,开启「Collision」选项;
- 导出GLTF时勾选「Export Physics」,用Reality Converter转换为USDZ;
- 导入RC后,选中该子物体,在检查器面板中设置其为「Collision Only」模式,此时它会隐藏但仍能捕捉点击触发。
所有操作完成后,直接在Reality Composer中保存为.reality文件即可交付。
内容的提问来源于stack exchange,提问作者d0g
相关产品推荐
相关产品推荐

