首页 > 解决方案 > MRTK - 在 PokePointer 重叠查询中发现的最大 64 个对撞机

问题描述

我正在尝试使用 48 * PressableButtonHoloLens2+在我的个人项目中构建颜色选择列表GridObjectCollection。当我用模拟的指尖运行和悬停时,编辑器会给我这些警告信息。

Q1 : 这是因为太多的按钮彼此太近了吗?或者只是带有碰撞器的按钮数量超过 64 个?消息说“考虑增加指针配置文件中的查询缓冲区大小”

Q2 : 我在哪里可以增加缓冲区大小?我在指针配置文件中看不到任何“缓冲区大小”字段。

Q3 : 会降低性能吗?(增加缓冲区大小)

警告信息

在 PokePointer 重叠查询中找到的最大 64 对撞机数。考虑增加指针配置文件中的查询缓冲区大小。UnityEngine.Debug:LogWarning(Object) Microsoft.MixedReality.Toolkit.Input.PokePointer:FindClosestTouchableForLayerMask(LayerMask, BaseNearInteractionTouchable&, Single&, Vector3&) (在 Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Pointers/PokePointer.cs:169) Microsoft.MixedReality.Toolkit.Input.PokePointer:OnPreSceneQuery() (在 Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Pointers/PokePointer.cs:127) Microsoft.MixedReality.Toolkit.Input.FocusProvider:UpdatePointer(PointerData) (在 Assets/MixedRealityToolkit.Services/InputSystem/FocusProvider.cs:878) Microsoft.MixedReality.Toolkit.Input.FocusProvider:UpdatePointers()(在 Assets/MixedRealityToolkit.1, Action1) (在 Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs:969) Microsoft.MixedReality.Toolkit.MixedRealityToolkit:ExecuteOnAllServicesInOrder(Action`1) (在 Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs:950) Microsoft.MixedReality.Toolkit。 MixedRealityToolkit:UpdateAllServices() (在 Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs:880) Microsoft.MixedReality.Toolkit.MixedRealityToolkit:Update() (在 Assets/MixedRealityToolkit/Services/MixedRealityToolkit.cs:580)

重现

  1. 创建一个空的游戏对象
  2. 在其下放置 48 个 PressableButtonHoloLens2 预制件
  3. 将 GridObjectCollection 分配给父级
  4. 更新布局(单元格宽度 x 高度 = 0.032)
  5. 用模拟手运行和悬停。

预期行为

没有警告信息

您的设置(请填写以下信息)

https://github.com/microsoft/MixedRealityToolkit-Unity/issues/6052

标签: unity3dhololensmrtk

解决方案


Q1:是不是因为太多的按钮太靠近了?或者只是带有碰撞器的按钮数量超过 64 个?消息说“考虑增加指针配置文件中的查询缓冲区大小”

这是因为彼此靠近的按钮太多。

Q2:我在哪里可以增加缓冲区大小?我在指针配置文件中看不到任何“缓冲区大小”字段。

您可以在 PokePointer 预制件中执行此操作,在 PokePointer 脚本中,查找“场景查询缓冲区大小”字段。

在此处输入图像描述

Q3:会降低性能吗?(增加缓冲区大小)

是的,我预计它会,但不清楚相对于场景中的其他组件有多少。请注意,戳指针会在每一帧运行查询,每只手至少运行一次。


推荐阅读