【问题标题】:How to find Vertical Plane ARFoundation如何找到垂直平面 ARFoundation
【发布时间】:2019-12-03 12:57:04
【问题描述】:

我正在尝试在平面上放置一个放置指示器,并在用户点击时在指示器的位置放置一个对象,但指示器在垂直平面上消失了。

我尝试使用默认平面,它确实检测到垂直平面

这是我的代码

    void Start()
    {
        arOrigin = FindObjectOfType<ARSessionOrigin>();
    }

    void Update()
    {
        UpdatePlacementPose();
        UpdatePlacementIndicator();

        if (placementPoseIsValid && Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
        {
            PlaceObject();
        }
    }

    private void PlaceObject()
    {
        Instantiate(objectToPlace, placementPose.position, placementPose.rotation);
    }

    private void UpdatePlacementIndicator()
    {
        if (placementPoseIsValid)
        {
            placementIndicator.SetActive(true);
            placementIndicator.transform.SetPositionAndRotation(placementPose.position, placementPose.rotation);
        }
        else
        {
            placementIndicator.SetActive(false);
        }
    }

    private void UpdatePlacementPose()
    {
        var screenCenter = Camera.current.ViewportToScreenPoint(new Vector3(0.5f, 0.5f));
        var hits = new List<ARRaycastHit>();
        arOrigin.Raycast(screenCenter, hits, TrackableType.Planes);

        placementPoseIsValid = hits.Count > 0;
        if (placementPoseIsValid)
        {
            placementPose = hits[0].pose;

            var cameraForward = Camera.current.transform.forward;
            var cameraBearing = new Vector3(cameraForward.x, 0, cameraForward.z).normalized;
            placementPose.rotation = Quaternion.LookRotation(cameraBearing);
        }
    }
}

【问题讨论】:

    标签: c# unity3d augmented-reality


    【解决方案1】:

    如果你想检测所有的飞机 进入检测模式并选择一切 如果您只想检测水平面 进入检测模式并选择水平 否则选择垂直进行垂直平面检测。

    【讨论】:

    • 它确实检测到了飞机,但是由于方向问题,指示器消失了,这就是我发布问题的原因
    • AR 垂直检测永远不会轻易检测到白色/同色垂直墙壁。
    【解决方案2】:

    更改这行代码:

    arOrigin.Raycast(screenCenter, hits, TrackableType.Planes);
    

    与:

    arOrigin.Raycast(screenCenter, hits, TrackableType.All);
    

    应该没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-30
      • 2017-11-09
      • 2012-04-02
      • 2015-01-05
      • 1970-01-01
      相关资源
      最近更新 更多