默认情况下,游戏控制器按钮B
退出应用程序并导航回tvOS主屏幕。起初我觉得这很直观,但很快就意识到这就是Nimbus MENU按钮(控制器的中间)的作用,我实际上想在游戏中使用按钮B
。
为按钮B
设置更改处理程序是可行的,但当按钮释放时,应用程序仍然会退出。
GCControllerButtonValueChangedHandler buttonBHandler = ^(GCControllerButtonInput *button, float value, BOOL pressed) {
NSLog(@"B");
};
我遇到了同样的问题。
解决方案是让我的主ViewController从GCEventViewController而不是UIViewController继承。
默认情况下,使用GCEventViewController时,MENU按钮不会返回菜单。在这种情况下,如果您希望它能够返回到具有原始行为的菜单,您可以简单地将controllerUserInteractionEnabled设置为YES。
请参阅此处的此类文档:https://developer.apple.com/library/tvos/documentation/GameController/Reference/GCEventViewController_Ref/index.html
编辑:苹果开发者论坛帮助我解决这个问题:https://forums.developer.apple.com/message/57926#57926
希望这能有所帮助,
我也遇到了与Unity有关的问题,但我认为这个相当棘手的解决方案会有所帮助。
从GCEventViewController派生,可以覆盖几种方法,其中之一是:
- (void)pressesBegan:(NSSet<UIPress *> *)presses withEvent:(UIPressesEvent *)event
在不调用super的情况下返回或处理press将删除对内部的所有调用。