C# MRTKv2 PressableRoundButton预置,带有WMR HMD don';我好像不为我工作

C# MRTKv2 PressableRoundButton预置,带有WMR HMD don';我好像不为我工作,c#,mrtk,C#,Mrtk,我已经创建了一个小的测试场景,我想在其中使用PressableRoundButton预置来在按下时额外加载一个场景。我已经连接了按钮来调用脚本并传递我想要加载的场景的名称,这段代码经过验证可以使用调试键盘快捷键工作,所以我知道这部分是好的。按钮事件本身似乎不起作用。也许我去做了一些非常愚蠢的事情,但我愚蠢地不知道我做错了什么 我使用的是DefaultMixedRealityToolkitConfigurationProfile,这可能是问题所在,也可能不是问题所在,但我有点不确定如何诊断。我觉得

我已经创建了一个小的测试场景,我想在其中使用PressableRoundButton预置来在按下时额外加载一个场景。我已经连接了按钮来调用脚本并传递我想要加载的场景的名称,这段代码经过验证可以使用调试键盘快捷键工作,所以我知道这部分是好的。按钮事件本身似乎不起作用。也许我去做了一些非常愚蠢的事情,但我愚蠢地不知道我做错了什么

我使用的是
DefaultMixedRealityToolkitConfigurationProfile
,这可能是问题所在,也可能不是问题所在,但我有点不确定如何诊断。我觉得默认的是最安全的赌注。当我使用WMR控制器点击按钮时,我可以看到按钮在视觉上被按下,因此按钮后面的所有机械装置都在工作,比如按下按钮,以及当我指向按钮时按下触发器


感谢您分享您的设置图像!尝试调用您的代码,而不是在
PressableButton
组件中,而是在
interactiable
组件的
OnClick
处理程序中(您需要在interactiable中展开“事件”下拉列表)

PressableButton组件实际上只会在您以接近交互的方式直接拨动按钮时引发按钮按下等事件。要在远处按下按钮,请使用Interactiveable中的OnClick事件处理程序

请注意,OnClick只会在指针未按下时触发,如果按住时间过长,OnClick(当前)也不会触发。如果您想在按下时运行代码,可以改为处理OnPress事件

请注意,默认情况下,Interactiables只处理OnClick事件——您可以通过单击“添加事件”添加“事件接收器”来添加更多事件处理程序按钮。然后您可以选择接收器类型。在圆形按钮预制的情况下,已经为您设置了一个
InteractiableOnPressReceiver
,用于公开OnPress和OnRelease事件

在MRTK中考虑按钮的方法是:

  • Interactiable实际上是一个“按钮”,可以在附近和远处进行交互。它公开了许多不同的事件处理程序,并具有许多视觉选项。它被称为“可交互”,而不是“按钮”,主要是因为历史原因(人们开始使用它,现在更改它会让很多人崩溃)
  • Pressable button是一个更复杂的只需触摸的按钮,它实际上是用手指移动的。Pressable button实际上是与Interactiable对话的,它设置了诸如其按下状态之类的内容,这样,如果人们想在附近和远处工作,就可以只听Interactiable

在大多数情况下,将事件处理程序添加到可交互按钮,而不是可按按钮。可按按钮仅用于触摸。

您应该共享代码。您尝试了什么&