如何通过相机的Raycast获得可追踪的点击

时间:2018-11-14 01:12:06

标签: c# unity3d arcore

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

最笼统地说,我想从相机中心到ARCore生成的平面/网格进行光线投射,并添加一个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;

}

0 个答案:

没有答案