球在全息镜头中穿过地面,但在统一时效果很好。空间映射

Posted

技术标签:

【中文标题】球在全息镜头中穿过地面,但在统一时效果很好。空间映射【英文标题】:The ball goes through the ground in holo lens but in unity it works well.Spatial Mapping 【发布时间】:2020-02-28 11:56:18 【问题描述】:

我已经制作了一个可以在我的办公室周围弹跳的球。在统一中,它完美地反弹,但是当我在全息镜头 2 中调试项目时,球穿过地面,就好像我没有认出地面一样。我应该放什么脚本才能很好地识别我的办公室?

在球中,我有一个 IsGravity 为真的“刚体”,而在 SpatialMapping 中,我有一个“IsKinetic”为真。

【问题讨论】:

你能把球的刚体定义截图吗? 当然!我放了刚体截图。 您是否尝试过不同的Interpolate 模式以及Collision Detection 还有一件事,Colliders 这两个对象使用了什么?据我了解,球 SphereCollider 用于地面? 检查层,球和环境网格应该在可以碰撞的层上(参见物理设置中的表格)。另请注意有关升级 XR 模块的警告。 【参考方案1】:

从您分享的图像来看,Is Kinematic(在Rigidbody 类中)未启用,但在您告诉它被选中为真的图像上方。不选中它,然后物体会随着重力自然下落。您不需要对刚体进行额外的更改。

另外,假设您的地板上没有洞,请确保在空间映射实际完成后放置一个弹跳的球。如果您没有给足够的时间来创建代表地板的网格,那么球就会从地板上掉下来。

【讨论】:

【参考方案2】:

首先,请注意,当您的应用程序在 HoloLens 上启动时,初始化空间映射和在 Unity 中创建表面网格需要几秒钟的时间。如果您的球在应用程序启动之初就已经在弹跳,则表面网格可能尚未构建。

另外,请注意空间网格中可能存在孔洞。 HoloLens 并不总是能看到黑色或高反射物体(如镜子)。您可以使用Scene Understanding 库快速制作没有孔的房间的“防水”网格。

祝你好运!

【讨论】:

希望,测试这个问题的解决方案的更好方法是: 生成一个按钮来启动弹跳球,从而应用程序将有更多的时间来加载表面网格。我在应用程序中无法检查解决方案,但解决球未能穿过网格似乎是合理的-

以上是关于球在全息镜头中穿过地面,但在统一时效果很好。空间映射的主要内容,如果未能解决你的问题,请参考以下文章

unity3d 中的模型加了重力之后就会穿过地面往下掉,我模型和地面都加了碰撞啊,没有选择trigger

unity3D中,给物体添加刚体后,为啥不是掉在地面上,而是穿过地形一直往下落呢?

为啥用unity 3d做的物体添加Rigidbody属性,并设置重力运行后直接穿过地面,而不是停在地面上?

微软Hololens学院教程-Hologram 230-空间映射(Spatial mapping )

如何用CSS制作投影效果

unity切换天空盒 地面倒影