c# - 更改 MRTK v2.1 中指针的图层蒙版
问题描述
我需要在运行时更改图层蒙版,以便根据上下文选择不同的对象。据我了解,这应该InputSystemProfile
通过编辑 Pointers 属性来完成:
CoreServices.InputSystem.InputSystemProfile.PointerProfile.PointingRaycastLayerMasks
但是该字段是只读的,除了在编辑器中手动之外,我找不到其他方法来编辑它。顺便说一句,我正在为输入系统使用可编辑的配置文件。
在 HTK 中,这是通过分配一个值来实现的:
GazeManager.Instance.RaycastLayerMasks
有什么建议么?
解决方案
对于返回的字段PointingRaycastLayerMasks
,它是一个引用类型的实例LayerMask[]
。因此,虽然不能更改引用本身的值,但可以更改属于该引用对象的数据。
因此,您可以使用以下代码更改图层蒙版:
//Uncheck [PostProcessing],[Spatial Awareness]
CoreServices.InputSystem.InputSystemProfile.PointerProfile.PointingRaycastLayerMasks[0].value = 19;
如果您对如何在 Unity 中使用图层蒙版有疑问,请参阅此处:如何使用图层蒙版?
推荐阅读
- image - 如何在 Flutter 中制作前后图像滑块视图
- linux - 在本地 WebGL 导出中执行游戏时出现 Unity 错误
- java - 从不同的类实例化同一个类
- javascript - 在全屏模式下添加一个按钮以在闪亮的应用程序中重置为正常模式
- batch-file - 批处理:比较文件大小并在新文件较小时覆盖
- c# - 编写文本文件如何强制ANSI格式C#
- python - pynput 脚本未使用 pyinstaller 编译(即使没有开关)
- c# - 在 WPF 中重用窗口
- swift - 如何在图像前面制作一个按钮,但限制在 SwiftUI 视图的左下角和右下角?
- hibernate - JPA PESSIMISTIC_WRITE 在同时读取流中的使用