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

基于Unity AR Core与AR Foundation的多场景平面检测适配问题

解决方案

一、隐藏平面检测的可视化网格

  • 找到场景中的AR Plane Manager组件
  • 选中它关联的Plane Prefab,在预制体内部禁用Mesh Renderer和Line Renderer组件(无需边框的话可直接关闭)
  • 配置完成后,AR Core会正常检测平面用于锚定,但不会在屏幕上显示任何网格

二、实现单次锚点创建与场景复用

核心思路

只创建一个全局AR锚点,所有场景内容都挂载到该锚点下,切换场景时仅替换锚点下的内容,而非重复创建锚点。

代码实现示例

  1. 创建单例管理器脚本ARAnchorManager:
using UnityEngine;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARSubsystems;

public class ARAnchorManager : MonoBehaviour
{
    public static ARAnchorManager Instance;
    public ARRaycastManager raycastManager;
    public Transform arAnchor;

    private void Awake()
    {
        Instance = this;
    }

    public void TryCreateAnchor(Vector2 screenPos)
    {
        // 已有锚点则直接返回
        if (arAnchor != null) return;

        // 检测屏幕点击对应的平面
        if (raycastManager.Raycast(screenPos, out var hits, TrackableType.PlaneWithinPolygon))
        {
            var hitPose = hits[0].pose;
            // 创建AR锚点
            var anchorObj = new GameObject("ARAnchor");
            var anchor = anchorObj.AddComponent<ARAnchor>();
            anchor.transform.SetPositionAndRotation(hitPose.position, hitPose.rotation);
            arAnchor = anchor.transform;
        }
    }

    // 切换场景内容的方法
    public void SwitchSceneContent(GameObject scenePrefab)
    {
        if (arAnchor == null) return;

        // 清除锚点下现有子物体
        foreach (Transform child in arAnchor)
        {
            Destroy(child.gameObject);
        }

        // 实例化新场景内容到锚点下
        Instantiate(scenePrefab, arAnchor);
    }
}
  1. 按钮绑定逻辑:
  • 放置锚点按钮:绑定ARAnchorManager.Instance.TryCreateAnchor(Input.mousePosition)(移动端替换为Input.GetTouch(0).position)
  • 场景切换按钮:绑定ARAnchorManager.Instance.SwitchSceneContent(对应场景预制体)

注意事项

  • 将每个场景的内容做成预制体,根对象位置设为(0,0,0),确保挂载到锚点后位置正确
  • 需先创建锚点再切换场景,否则切换方法会直接返回

三、额外优化建议

  • 在UI上添加状态提示:未创建锚点时,场景切换按钮置灰或提示用户先放置锚点
  • 若需要微调锚点位置,可给锚点添加拖拽功能,直接调整ARAnchor的Transform参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:13:23