Привет! Не все это знают, но когда вы загружаете свою игру на сервер и пытаетесь прокрутить ее внутри приложения Unity, как на обычной веб-странице, функция прокрутки не будет работать должным образом. В этой статье я объясню, как включить прокрутку внутри приложения Unity, чтобы вы могли перемещаться по веб-странице как единое целое. Хочу отметить, что мой метод работает только в том случае, если в игре не используется вид прокрутки.

Прежде всего, вам нужно экспортировать игру как проект WebGL. Для этого вам нужно выбрать в File->Build Settings опцию WebGL. Затем нажмите кнопку «Создать» и выберите место, где вы хотите сохранить проект. Как только Unity успешно создаст каталог для экспорта и открытия сборки, вы увидите такую ​​иерархию:

Нас интересует файл index.html. Хочу заметить, что Unity всегда генерирует index.html и другие файлы с нуля по так называемым WebGLTemplates. Подробнее о них можно узнать здесь: https://docs.unity3d.com/Manual/webgl-templates.html

Откройте файл index.html в любом текстовом редакторе (я открыл его в Notepad++). Здесь вы увидите стандартный код, созданный Unity:

<!DOCTYPE html>
<html lang=”en-us”>
<head>
<meta charset=”utf-8">
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8"><title>Unity WebGL Player | %UNITY_WEB_NAME%</title>
<link rel=”shortcut icon” href=”TemplateData/favicon.ico”>
<link rel=”stylesheet” href=”TemplateData/style.css”>
<script src=”TemplateData/UnityProgress.js”></script>
<script src=”%UNITY_WEBGL_LOADER_URL%”></script>
<script>
var gameInstance = UnityLoader.instantiate(“gameContainer”, “%UNITY_WEBGL_BUILD_URL%”, {onProgress: UnityProgress});
</script>
</head>
<body>
<div class=”webgl-content”>
<div id=”gameContainer” style=”width: %UNITY_WIDTH%px; height: %UNITY_HEIGHT%px”></div>
<div class=”footer”>
<div class=”webgl-logo”></div>
<div class=”fullscreen” onclick=”gameInstance.SetFullscreen(1)”></div>
<div class=”title”>%UNITY_WEB_NAME%</div>
</div>
</div>
        <!-- Place for scroll code -->
</body>
</html>

Нас интересует раздел ‹body›… ‹/body›, куда мы будем вставлять скрипт. Заменять "

<script>
document.addEventListener('wheel', onScroll, false);
document.addEventListener('mousemove', onMouse, false);
var content = document.getElementsByClassName('webgl-content');
function onMouse() { content[0].style['pointer-events'] = 'auto'; }
function onScroll() { content[0].style['pointer-events'] = 'none'; }</script>

Этот код подписывается на два события веб-страницы:

  • «колесо», которое отвечает за прокрутку
  • «mousemove», который отвечает за изменение положения курсора мыши

Сценарий отключает стиль страницы «события указателя», если пользователь прокручивает веб-страницу, и снова включает его, когда пользователь перемещает мышь. Сохраните файл, обновите страницу, и теперь вы можете полностью прокручивать веб-страницу. Надеюсь, мое решение вам поможет!