我已经创建了一个小测试场景,我想在该场景中使用PressableRoundButton预制件在按下时添加场景。我已经将按钮连接起来,以调用脚本并传递要加载的场景的名称,该代码已通过验证,可与调试键盘快捷键一起使用,因此我知道该部分是不错的。似乎不起作用的是按钮事件本身。也许我已经走了,做了一些非常愚蠢的事情,但是我愚蠢的无法弄清楚自己做错了什么。
我正在使用NullInjectorError: No provider for InjectionToken angularfire2.app.options!
,这可能是问题也可能不是问题,但是我不确定如何诊断。我觉得默认的是最安全的选择。当我使用WMR控制器单击按钮时,可以看到按钮的外观在视觉上按下,因此按钮背后的所有机制都可以通过按下按钮来实现,而当我按下触发器并指向它时,一切都可以实现
答案 0 :(得分:0)
感谢您分享您的设置图片!尝试在PressableButton
组件的Interactable
处理程序中而不是在OnClick
组件中调用代码(您需要在Interactable中扩展“事件”下拉列表。
PressableButton组件实际上仅会在您以近距离交互方式直接按下按钮时引发按下按钮等事件。要远距离按下按钮,请使用Interactable中的OnClick事件处理程序。
Have a look at the picture here to see where the OnClick handler lives。
请注意,OnClick只会在未按下指针时触发,并且(如果当前)按下时间过长,也不会(当前)触发。如果您想在按下时运行代码,则可以处理OnPress事件。
Have a look here for that example。
请注意,默认情况下,Interactables仅处理OnClick事件-通过单击“添加事件”按钮来添加“事件接收器”,从而添加更多事件处理程序。然后,您可以选择接收器类型。对于圆形按钮预制件,已经为您设置了InteractableOnPressReceiver
,用于公开OnPress和OnRelease事件。
在MRTK中思考按钮的方式是:
在大多数情况下,将事件处理程序添加到Interactable(不可按下)按钮。可按下的按钮仅用于触摸。