Unity项目导出到iOS,背景视图不接受触摸

时间:2019-05-13 13:47:10

标签: ios unity3d export uitouch

我将Unity项目导出到iOS时遇到问题。 我要做的是使Unity游戏视图位于另一个WebView上,并在需要时将触摸事件传递给WebView而不是Unity游戏视图。目前,我的UnityView仅包含一个按钮,但是它是全屏的,因为稍后会添加其他元素。 UnityView的背景是透明的。 WebView包含许多可点击的项(按钮等)。

我尝试了以下视图层次结构: -UIView |-WebView |-UnityView

并分别尝试了每个更改:

1)在UnityView+iOS.mm文件中,我添加了:

-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    id hitView = [super hitTest:point withEvent:event];
    if (hitView == self) {
        return nil;
    } else {
        return hitView;
    }
}

2)也在UnityView+iOS.mm文件中添加了此覆盖:

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
    NSLog(@"Passing all touches to the next view (if any), in the view stack.");
    return NO;
}

第一次尝试和第二次尝试使UnityView没有响应,第二次尝试使WebView没有响应。

我还将层次结构更改为以下一个匹配项: -UIView | -WebView | | -UnityView

并尝试应用此更改:

  • 也在UnityView+iOS.mm文件中,我更改了touches ***方法,包括以下行:
[self.superview touchesBegan:touches withEvent:event];

以便也调用touchesBegansuperview,但是WebView没有收到任何触摸事件。

我期望UnityViewWebView都收到正确的UITouchEvents。我知道统一不会创建任何视图,它只是将图形渲染到其视图,因此整个视图都将接收触摸事件,然后将它们转换为对按钮的触摸。 这可能是Unity的Raycaster问题吗? raycaster可以改变行为,以便背景上的触摸传递到背景视图(使用我上面介绍的第二个视图层次结构)。

我目前正在使用Unity V2019.1

0 个答案:

没有答案