Экспорт проекта Unity на iOS с фоновым представлением, не принимающим касания - PullRequest
0 голосов
/ 13 мая 2019

У меня проблема с экспортом проекта 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 Я изменил методы прикосновения ***, включая эту строку:
[self.superview touchesBegan:touches withEvent:event];

так что для вызова touchesBegan тоже superview, но тогда WebView не получит никакого события касания.

Я ожидаю, что и UnityView, и WebView получите каждый правильный UITouchEvents.Я знаю, что единство не создает никаких представлений, оно просто отображает графику для своего представления, поэтому весь вид получает события касания, а затем транслирует их как прикосновения к кнопке.Может ли это быть проблемой Raycaster от Unity?Может ли raycaster изменить поведение так, чтобы прикосновения к фону проходили к фоновому виду (используя представленную выше иерархию второго вида).

В настоящее время я использую Unity V2019.1

...