ios - ARKit 和 Unity - 如何检测来自相机的真实世界物体撞击 AR 物体的行为?

标签 ios iphone xcode unity-game-engine arkit

想想如果现实生活中有人挥手击中 AR 中的 3D 物体,我将如何检测到?我基本上想知道什么时候有什么东西越过 AR 对象,这样我就可以知道有什么东西“击中”了它并使用react。

另一个例子是将一个虚拟瓶子放在 table 上,然后在瓶子所在的空中挥动你的手,然后它就会被打翻。

这能做到吗?如果是这样怎么办?我更喜欢 unity 帮助,但如果这只能通过 Xcode 和 ARKit native 完成,我也会接受。

最佳答案

ARKit 确实解决了 AR 的大量问题,并使它们易于使用。您的问题不是其中之一。

正如 @Draco18s 所指出的(并在 xkcd 链接中很好地强调了 👍),您可能不知不觉地进入了复杂的计算机视觉问题领域。不过,您需要使用一些构建 block :ARKit 为每个视频帧提供像素缓冲区,以及计算出 2D 图像的哪一部分被虚拟水瓶覆盖所需的投影矩阵。

决定何时打翻水瓶是分析图像该区域随时间变化的帧与帧差异的问题。 (并跟踪该区域相对于整个相机图像的运动,因为用户可能没有完全静止地握住设备。)所需的分析量取决于您想要的效果的复杂程度......一个简单的像素差异可能工作(对于“工作”的某些值(value)),或者可能存在可以与 Vision 和 Core ML 放在一起的现有机器学习模型......

关于ios - ARKit 和 Unity - 如何检测来自相机的真实世界物体撞击 AR 物体的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46270250/

相关文章:

iphone - 如何让scrollview内容循环播放?

ios - FacebookSDK for Unity iOS Mach-O 链接器错误 - undefined symbol _iosLogin,

ios - 按 UIImage 打开新的 View Controller

ios - 将视点转换为 MKMapView 坐标

ios - 字符串中的 NSDate 显示一个月前的日期

android - 升级后 Flutter 无法同时在 IOS 和 Android 上运行

ios - 如何将 View 添加到 StoryBoard 以在 viewForHeaderInSection 中使用?

ios - i386 架构在 MacOS 错误中弃用

ios - iOS 中的 itunes JSON 请求返回一个 XML 对象

iphone - 转换发送方参数