c# - 如何使用来自相机的 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;
}
解决方案
推荐阅读
- smartsheet-api - Smartsheet-api,有没有办法使用 smartsheet api 或 sdk 调用手动删除行
- caching - System.Json.Net - 反序列化任务
失败(没有无参数构造函数) - pandas - 迭代每一行并检查数据框中的列是否为 NaN
- eclipse - 在 Eclipse RCP 中通过拖放在同一部件中的视图之间传输项目?
- javascript - 抽屉导航器屏幕奇怪的行为
- sql - MSSQL:以下代码的替代方法,这需要太多时间才能获得结果
- angular - 如何将角度材质导航栏 HTML 与项目组件链接?
- python - 等待从内核进程获取心跳超时
- azure-functions - 定时运行的Function App也需要手动运行
- flutter - Flutter 如何在不单击任何内容的情况下捕获照片多次