我想实现类似ARCore's raycast method之类的东西,它在世界空间坐标中接收任意射线,而不是屏幕空间点:
List<HitResult> hitTest (float[] origin3, int originOffset, float[] direction3, int directionOffset)
[我看到ARKit本身没有那样的方法,但是无论如何,也许有人有一个主意!
谢谢。
在全新的Apple RealityKit 1.0框架中,您可以找到三种类型的Raycast方法:
此实例方法执行射线投射,其中将射线从相机中心通过视图中的点投射到场景中,并立即返回结果。您可以在ARKit 3.5中使用这种类型的raycast。
func raycast(from point: CGPoint,
allowing target: ARRaycastQuery.Target,
alignment: ARRaycastQuery.TargetAlignment) -> [ARRaycastResult]
此实例方法针对给定的原点,方向和长度的射线对场景中的所有几何体执行凸射线投射。
func raycast(origin: SIMD3<Float>,
direction: SIMD3<Float>,
query: CollisionCastQueryType,
mask: CollisionGroup,
relativeTo: Entity) -> [CollisionCastHit]
此实例方法会随着时间的推移重复射线广播查询,以通知您物理环境中的更新曲面。
func trackedRaycast(_ query: ARRaycastQuery,
updateHandler: @escaping ([ARRaycastResult]) -> Void) -> ARTrackedRaycast?