You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ARCore+Unity中替换Andy预制体为立方体后底部未接触跟踪平面

解决ARCore替换Andy预制体后立方体不贴合平面的问题

嘿,我之前也踩过这个坑!Andy预制体能完美贴合平面,核心原因是它的轴心点(Pivot)刚好在模型底部,而Unity默认创建的立方体轴心是在模型正中心的。当ARCore的代码把预制体放在检测到的平面位置时,是把预制体的轴心点对齐到平面上的——立方体中心落在平面上,底部自然就悬空了。

下面是几个快速搞定的方法:

  • 调整立方体的轴心结构
    最简单的操作是给立方体加一个空父物体:把立方体的Local Position的Y轴向上移动自身高度的一半(比如1x1x1的立方体,就设为(0, 0.5, 0)),然后把这个空父物体存成新的预制体。这样父物体的轴心就在立方体底部,ARCore放置时就能完美贴合平面了。如果是导入的外部模型,也可以在模型导入设置里直接调整轴心到底部。

  • 在代码里添加位置偏移
    要是不想改模型结构,也可以在生成预制体的代码里给位置加个Y轴偏移。找到HelloAR中负责放置物体的代码(一般在HelloARController.cs的触摸响应方法里),实例化时给位置补上立方体高度的一半:

    // 假设立方体高度为1f,偏移量设为0.5f
    Vector3 spawnPos = hitPose.position + new Vector3(0, 0.5f, 0);
    Instantiate(yourCubePrefab, spawnPos, hitPose.rotation);
    

    这样就能让立方体底部刚好落在平面上。

  • 检查缩放和锚点设置
    不小心给立方体加了非均匀缩放也会导致位置错位,记得确保预制体的缩放是(1,1,1)。另外ARCore的Anchor组件绑定在预制体根节点,根节点的轴心和缩放一定要保持正确状态。

试上面的方法应该就能解决问题啦!

内容的提问来源于stack exchange,提问作者RazorAlliance192

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:22:03