我使用 iOS 11 ARKit(Scenekit- https://developer.apple.com/sample-code/wwdc/2017/PlacingObjects.zip开发了 POC。当我尝试使用相机放置 3D 对象时,它会检测水平面并将其放置。
但是我能够将对象 anywhere(like 放到空中),即使它没有检测到合适的水平面也不是理想的情况。
是否可以限制用户,使对象只能放置在有效的水平平面(例如地板)上,而不能放置在其他任何地方?那就是我想检测地板的水平并将物体仅放置在有效平面之上,而不是空中。
1 回答
您可以通过指定点击测试选项
ARHitTestResultTypeExistingPlaneUsingExtent
来限制ARHitTestResult
用户触摸事件。然后将所选对象放置在
ARHitTestResult.worldTransform
中指定的位置。这样可以确保用户只能将物体放在 ARKit 检测到的平面上。