我正在开发一个 AR 应用程序,为此我将一个3D 模型放置在设备前面**,而无需进行水平表面检测**。
基于此 3D 模型的transform,我创建了ARAnchor对象。 锚点对象可用于跟踪ARKit中的现实世界对象和 3D 对象。
放置ARAnchor的代码:
ARAnchor* anchor = [[ARAnchor alloc] initWithTransform:3dModel.simdTransform]; // simd transform of the 3D model
[self.sceneView.session addAnchor:anchor];
问题:有时,我发现 3D 模型开始朝随机方向移动而没有停止。
问题:
-
我创建 ARAnchor 的代码是否正确?如果否,那么创建锚点的正确方法是什么?
-
ARKit 是否存在对象开始移动的任何已知问题?如果是,是否有解决方法?
我将对此主题提出任何建议和想法。
编辑:
当 AR 跟踪状态为正常时,我将放置 3D 对象。当用户在屏幕上点击时,将放置 3D 对象(不进行水平表面检测)。放置 3D 模型后,即使设备没有移动,该模型也将开始移动而不会停止。
2 回答
实际上,您不需要 ARAnchor,只需将 3D 对象的位置设置在用户面前。
如果该表面不足以确定位置,则该对象将不会附着到该表面。查找具有更多纹理的飞机,然后重试。