需要使用ARCore / ARKit将表设置为世界原点

时间:2018-04-25 20:07:43

标签: android unity3d augmented-reality arkit arcore

我正在开发一款桌面游戏,我想让数字世界适应用户指向的桌子(游戏区域),如果这是有意义的话。我想检测表格,估计它的大小并将内容锁定到表面。如果我想要在我的桌子上有草地,那草地将适应不同大小的桌子。请参阅下面的视频,如果表格更窄,游戏对象会更接近彼此,以便将内容放到表面上。

以下是我正在寻找的一个例子:https://youtu.be/S14AVwaBF-Y?t=48s

2 个答案:

答案 0 :(得分:0)

首先,您应该使用像ARCore或ARkit这样的AR技术(就像您已经包含在标题中一样)。有了它,您将扫描环境,它将为您提供跟踪的平面(如表)。

从那里你可以得到它的大小,然后在程序上生成你的虚拟地面(如草),并根据地面的大小在程序上放置你的其他虚拟对象。

这是一个非常广泛的主题,因为您采用的方法在很大程度上取决于您的具体要求,但也许您可以查看程序生成,并从那里编写您自己的算法以满足您的需求。

如果你的地面只是一个平面,那么你可以创建一个多边形网格来匹配跟踪的平面,或者只是修改跟踪的平面并添加材质,碰撞器等。这样可以了解网格的工作原理以及它们的创建方式这里:

https://docs.unity3d.com/Manual/GeneratingMeshGeometryProcedurally.html

https://docs.unity3d.com/ScriptReference/Mesh.html

https://docs.unity3d.com/Manual/Example-CreatingaBillboardPlane.html

对于对象放置,您需要找到有关如何在可用空间中以程序方式放置对象(如建筑物)的算法。

答案 1 :(得分:0)

ARCore的{​​{1}}(增强现实SDK)目前在版本1.1中。

将从ARCore SDK中自动检测表格等平面检测。如果您正在使用Unity,则可以为关联的Prefab / GameObject添加草纹理以用于检测到的平面。

只需下载ARCore SDK here并运行示例应用

即可

如果您对如何精确添加frass纹理感兴趣,请查看 this tutorial