McFree
@McFree
JS, TS, C#

Как заставить работать fullscreen в Unity WebGL с первого клика?

Вечер добрый, такая проблема. я сделал в игре кнопку фуллскрина и она работает только на второе отпускание клавиши (т.е не обрабатывает событие при первом клике).

Написал js плагин:

var ScreenOpenerPlugin = {
  ScreenOpenerCaptureClick: function() {
    var OpenScreen = function() {
      parent.setFullscreen(parent.document.getElementById("gameContainer"));
      document.getElementById('#canvas').removeEventListener('mouseup', OpenScreen);
    };
    document.getElementById('#canvas').addEventListener('mouseup', OpenScreen, false);
  }
};
mergeInto(LibraryManager.library, ScreenOpenerPlugin);


Интегрирую его в скрипт:

using System.Runtime.InteropServices;
...

[DllImport("__Internal")]
    private static extern void ScreenOpenerCaptureClick();
...

private bool stateTmp = false;
	public void SetFullscreen() {
		if(WinPanelAnim.gameObject.activeSelf) {
			return;
		}
		ScreenOpenerCaptureClick();
		ButtonClickSound();
		stateTmp = Screen.fullScreen;
		Screen.fullScreen = !Screen.fullScreen;
	}


На первый раз код отрабатывает и меняет значение переменным, но не перехватывает событие на отпускание кнопки мыши, второй раз я нажимаю кнопку и экран открывается в fullscreen, но при отпускании кнопки все опять возвращается на обычный вариант.
  • Вопрос задан
  • 695 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы