首页 > 解决方案 > 如何使用来自相机的 Raycast 获得可追踪命中

问题描述

我正在使用 ARCore 1.5。我可以使用触摸来获取 Frame.Raycast 来放置对象(基于 ARCore 附带的 HelloAR 场景)。我已经修改了 Prefab 和代码以将 Mesh Collider 添加到生成的平面中。虽然这可以从相机中心获得 Physics.Raycast 命中,但我似乎无法在该点添加 ARCore Anchor,因为我似乎没有来自该命中的 Vector3 值。

一般来说,我想做一个从相机中心到 ARCore 生成的平面/网格的 Raycast 并添加一个 GameObject。有没有人对此有任何解决方案?

编辑。这是我所拥有的工作:

TrackableHit hitTouch;
TrackableHitFlags raycastFilter = TrackableHitFlags.PlaneWithinPolygon | 
TrackableHitFlags.FeaturePointWithSurfaceNormal;

if (Frame.Raycast(FirstPersonCamera.transform.position, FirstPersonCamera.transform.forward, out hitTouch, 100f, raycastFilter))
{
    //Instantiate Prefab at the hit pose.
    hitPlaneAddedObject = Instantiate(AddToPlanePrefab, hitTouch.Pose.position, hitTouch.Pose.rotation);

    //Make an ARCore Anchor at the hit pose.
    var anchor = hitTouch.Trackable.CreateAnchor(hitTouch.Pose);

    // Make prefab a child of the anchor.
    hitPlaneAddedObject.transform.parent = anchor.transform;

}

标签: c#unity3darcore

解决方案


推荐阅读