Unity-MRTK-HoloLens:修改2D按钮的对撞机,使光标越来越近

时间:2019-06-12 10:21:44

标签: unity3d augmented-reality hololens mrtk

我当前的问题是光标看起来离按钮太远。您可以在屏幕截图中看到我的意思。将鼠标悬停在列表中的按钮上看起来像这样:

enter image description here

问题:该怎么办,因为在HoloLens上您可以看到距离,所以光标靠近按钮了吗?

在画布上除按钮之外的其他位置上,光标移近:

enter image description here

-编辑-
我应该提到的是,场景中有一个缩放的多维数据集(屏幕截图中的灰色物体),并且在该场景的前面有一个世界画布(白色物体),其中包含滚动视图/列表。

2 个答案:

答案 0 :(得分:2)

我看到了UI元素的相同行为。

我只能为您提供一种解决方法。有点hacky,但可以:

  1. 遍历所有 UI元素,尤其是TextImage并禁用选项RayCast Target

    enter image description here

    这使光标位于它们的顶部。但是,您会注意到Button现在没有响应,您无法再与它们进行交互。

    enter image description here

    之所以会这样,是因为Physics系统需要RayCastTarget或Collider才能触发其指针事件,例如PointerEnterPointerDown等。

  2. 因此现在在您的BoxCollider中添加一个BoxCollider2D不是 Button!)并将其缩放为正确的大小。好像您使用的是VerticalLayoutGroup,因此您可以通过将BoxCollider设置为居中一次来简单地纠正RectTransform的位置(无论如何,VerticalLayoutgroup都会强制执行左上锚)。在我的情况下,BoxCollider需要0.8,高度为0.1 ...,对于z,我选择0.01,但是如果您愿意,它可以更小< / p>

    enter image description here

万岁,现在按钮又可以重新交互了,并且光标只有通常的距离+ z的{​​{1}}厚度的一半。

enter image description here

由于Background多维数据集拥有自己的BoxColliders,因此我们无需为BoxCollider和UI面板进一步添加Colliders

如果需要滚动条,可能还需要添加一些内容!


如上所述,这更像是一种快速的解决方法,可能不是最终的解决方案,因为无论何时更改ScrollViewButton的大小,您都必须重新处理那些经过硬编码的ScrollRect维数也是如此...

答案 1 :(得分:0)

我对3D对象也有类似的问题。这可能是因为对象碰撞器定义。我的意思是,您可以导入渲染网格物体,但是网格物体碰撞器可能会有所不同(更大,更小...)

我希望这可以解决您的问题;)