首页 > 解决方案 > 更改 MRTK v2.1 中指针的图层蒙版

问题描述

我需要在运行时更改图层蒙版,以便根据上下文选择不同的对象。据我了解,这应该InputSystemProfile通过编辑 Pointers 属性来完成:

CoreServices.InputSystem.InputSystemProfile.PointerProfile.PointingRaycastLayerMasks

但是该字段是只读的,除了在编辑器中手动之外,我找不到其他方法来编辑它。顺便说一句,我正在为输入系统使用可编辑的配置文件。

在 HTK 中,这是通过分配一个值来实现的: GazeManager.Instance.RaycastLayerMasks

有什么建议么?

标签: c#unity3dhololensmrtk

解决方案


对于返回的字段PointingRaycastLayerMasks,它是一个引用类型的实例LayerMask[]。因此,虽然不能更改引用本身的值,但可以更改属于该引用对象的数据。

因此,您可以使用以下代码更改图层蒙版:

//Uncheck [PostProcessing],[Spatial Awareness]
CoreServices.InputSystem.InputSystemProfile.PointerProfile.PointingRaycastLayerMasks[0].value = 19;

如果您对如何在 Unity 中使用图层蒙版有疑问,请参阅此处:如何使用图层蒙版?


推荐阅读