ARCore在生成的平面上使用碰撞器

5

我只是在玩AR核心,想让一个物体在房间中飞行并着陆。 我不确定如何向ARcore根据房间的视觉生成平面添加碰撞器。 这是否需要在平面上实例化盒状碰撞器?

3个回答

7
ARCore SDK的可跟踪平面基本上是指识别出的平坦表面,例如地面或桌面。
您可以向SDK请求每个可跟踪平面边界多边形(以顺时针顺序检索)的点列表,并通过三角剖分从这些点创建网格。准备好网格后,创建一个GameObject并添加一个引用它的MeshCollider组件。
我创建了一个免费的Unity插件,正好可以做到这一点。随意使用:https://github.com/jonas-johansson/ARCoreUtils
希望能对您有所帮助!

Jonas,谢谢你,这个完美地运行了,而且几乎没有任何努力。 - Duncan Roberts
@DuncanRoberts,非常高兴听到这个消息: )。请考虑将问题标记为已回答,以确保其他人可以找到它。 - Jonas Johansson

2
假设您正在使用Unity进行此操作,您可能希望在表面上使用Mesh Collider而不是Box Collider。
我不确定在Unity中的ARCore是否如此,但在其他AR框架中,它的工作方式类似于附加的屏幕截图,因此我想它应该是相似的。

非常感谢,抱歉我应该说它是在Unity中。我会尝试一下。 - Duncan Roberts
很抱歉,实际上这并没有起作用。ARcore有一个跟踪平面可视化器,我尝试添加网格碰撞器,但似乎没有帮助。问题在于,如果我给我的物体添加刚体,它就会不断地掉落,我希望它能够与ARcore注册的任何跟踪平面发生碰撞并着陆。也许碰撞器不是最好的方法,但如果有人有任何建议,我很乐意听取。 - Duncan Roberts

-1
将刚体添加到对象中会导致重力被应用于对象的刚体上。在对象的刚体上设置重力为0即可防止其掉落。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接