【问题标题】:ARKit how to place object on plane surface?ARKit如何将物体放置在平面上?
【发布时间】:2018-04-03 20:07:53
【问题描述】:

我是 ARKit 新手,我从 Unity Assets Store 导入 Unity ARKit 插件,我将 UnityARKitScene 加载到场景中,并替换了 hitcube 带有我的预制资产的游戏对象。 我可以在我的设备上运行该项目,但我导入的模型不仅可以放置在表面上,还可以放置在“空气”上。

我需要更改什么以将模型仅放置在平面上吗?

谢谢。

【问题讨论】:

  • 当我遇到同样的问题时,我选择使用 Apple ARKit 示例中的平面检测机制。下载地址:github.com/gao0122/ARKit-Example-by-Apple
  • 您可以尝试仅使用ARHitTestResultTypeExistingPlaneUsingExtent 作为HitTest 的可接受结果。这似乎是最准确的命中结果类型。
  • @Kingalione 但 git repo 中的项目不是统一的吗?

标签: unity3d arkit


【解决方案1】:

在 UnityARHitTestExample.cs 中只需更改以下代码

// prioritize reults types
ARHitTestResultType[] resultTypes = {
    ARHitTestResultType.ARHitTestResultTypeExistingPlaneUsingExtent,
    // if you want to use infinite planes use this:
    //ARHitTestResultType.ARHitTestResultTypeExistingPlane,
    ARHitTestResultType.ARHitTestResultTypeHorizontalPlane,
    ARHitTestResultType.ARHitTestResultTypeFeaturePoint
};

到这里

// prioritize reults types
ARHitTestResultType[] resultTypes = {
    ARHitTestResultType.ARHitTestResultTypeExistingPlaneUsingExtent,
    // if you want to use infinite planes use this:
    //ARHitTestResultType.ARHitTestResultTypeExistingPlane,
    //ARHitTestResultType.ARHitTestResultTypeHorizontalPlane,
    //ARHitTestResultType.ARHitTestResultTypeFeaturePoint
};

更多信息请查看https://developer.apple.com/documentation/arkit/arhittestresult.resulttype

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-11
    • 2018-03-21
    • 1970-01-01
    • 2017-11-20
    • 2018-02-15
    • 2018-01-14
    • 2019-11-10
    • 1970-01-01
    相关资源
    最近更新 更多