atnartur
@atnartur
Веб-разработчик

Как запустить Unity3D WebGL player с абсолютными путями до файлов?

Здравствуйте!

Пишем проект по просмотру 3D-моделей мебели. Плеер моделей реализован на Unity3D. После того, как хром вырубил поддержку NPAPI и Unity 3D Plugin перестал работать, пришлось переносить плеер моделей на WebGL. Сборка через среду разработки Unity работает нормально, и просмотр диванов там работает тоже нормально.

Но для реализации библиотеки просмотра мебели нужно прописывать абсолютные пути до файлов, которые участвуют в просмотре модели (раньше - WebPlayer.unity3d, сейчас - WebGLPlayer.js, WebGLPlayer.data, WebGLPlayer.html.mem и т. д.). После того, как я добился загрузки всех файлов, начала вылезать ошибка, stack trace которой уходит далеко в asm.js, который прочитать просто так невозможно.

Текст ошибки:
exception thrown: TypeError: Cannot read property 'addEventListener' of undefined,TypeError: Cannot read property 'addEventListener' of undefined
    at Object.JSEvents.registerOrRemoveHandler (http://host/player/WebGL/Release/WebGLPlayer.path_fixed.js:1:115907)
    at Object.JSEvents.registerMouseEventCallback (http://host/player/WebGL/Release/WebGLPlayer.path_fixed.js:1:119681)
    at _emscripten_set_mousedown_callback (http://host/player/WebGL/Release/WebGLPlayer.path_fixed.js:1:191086)
    at BCc (http://host/player/WebGL/Release/WebGLPlayer.path_fixed.js:18:614839)
    at Object.eCc [as _main] (http://host/player/WebGL/Release/WebGLPlayer.path_fixed.js:18:609112)
    at Object.callMain (http://host/player/WebGL/Release/WebGLPlayer.path_fixed.js:31:49538)
    at doRun (http://host/player/WebGL/Release/WebGLPlayer.path_fixed.js:31:50368)
    at run (http://host/player/WebGL/Release/WebGLPlayer.path_fixed.js:31:50536)
    at runCaller (http://host/player/WebGL/Release/WebGLPlayer.path_fixed.js:31:48822)
    at Object.removeRunDependency (http://host/player/WebGL/Release/WebGLPlayer.path_fixed.js:1:28378)


WebGlPlayer.path_fixed.js - такой же файл, как и WebGLPlayer.js, только с исправленными путями до WebGLPlayer.data и WebGLPlayel.html.mem.

В инете решения проблемы не нашел, так как такой метод публикации проектов Unity3D только выпустили.

В чем может быть проблема? Как сделать кастомную сборку WebGLPlayer.js, чтобы можно было избежать таких багов?
  • Вопрос задан
  • 1913 просмотров
Решения вопроса 1
atnartur
@atnartur Автор вопроса
Веб-разработчик
Костылями через замену текст в файлах получалось заменять пути, но это костыль.
Решили открывать iframe на сайте. А в iframe тот самый index.html из сборки.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы