我正在开发一款桌面游戏,我想让数字世界适应用户指向的桌子(游戏区域),如果这是有意义的话。我想检测表格,估计它的大小并将内容锁定到表面。如果我想要在我的桌子上有草地,那草地将适应不同大小的桌子。请参阅下面的视频,如果表格更窄,游戏对象会更接近彼此,以便将内容放到表面上。
以下是我正在寻找的一个例子:https://youtu.be/S14AVwaBF-Y?t=48s
答案 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