Unity WebGL "RangeError: Превышен максимальный размер стека вызовов" после загрузки файлов
Я задаю этот вопрос и здесь, чтобы я наконец смог решить его. Оригинальный пост также здесь
Поэтому моя проблема в том, что я пытаюсь интегрировать игру Unity в нашу собственную систему. Игра должна взять параметры "настройки" из нашей системы и использовать их в игре. Когда игра закончена, она выполняет функцию обратного вызова, отправляя вещи обратно в нашу систему. Все это прекрасно работает в игре, когда я развертываю и использую индексный файл, созданный во время сборки для игры на платформе WebGL. Однако мне удалось столкнуться с вышеуказанной ошибкой при попытке интегрировать и запустить игру в нашей системе.
Первым решением, которое я пытался использовать, было создание его с помощью JQuery из файла init.js. В iframe я просто открываю файл index.html, сгенерированный сборкой Unity, и он без проблем показывает игру внутри iframe. (на данный момент я ничего не менял в файлах, предоставленных Unity). Так что это решение работает хорошо.
$(this.getElement()).append('<iframe src="xxxx/xxxx/xxxx/index.html" height="768" width="1024" frameborder="0"></iframe>');
Отправка параметров через iframe - это последнее, что вы хотите сделать, так как единственный способ сделать это - через URL. Поэтому я хотел найти способ обойти это и обнаружил, что это возможно (и даже желательно) сделать. Одним из решений было просто получить весь код из файла index.html и поместить его в файл init.js, где у меня впервые был iframe.
Поэтому, когда наша система запускает файл init.js, она создает холст (который уже был у index.html), а затем другие сценарии, как и index.html, в том же порядке. Я отладил весь код с помощью console.log(), и он прошел код нормально. Ошибка произошла после того, как система прошла через init.js и Unity должен начать работать (в основном, после того, как Unity должен был загрузить все необходимые вещи для запуска). Где я ошибся, когда игра выдает мне ""RangeError: Превышен максимальный размер стека вызовов "с Chrome и ошибкой" Too much recursion "с Firefox. Может ли это быть порядок запуска скрипта в init.js, который смешивает до полной загрузки или как?
Я также поместил отладки в файлы UnityConfig.js и fileloader.js просто для того, чтобы убедиться, откуда возникла ошибка. На самом деле, когда система запускалась через загрузчик файлов, я заметил, что между порядками выполнения есть некоторые изменения, когда я запускаю код в системе, или через iframe, или прямо из index.html. Может ли это быть источником проблемы тоже, и если это так, что я должен сделать, чтобы это исправить.
Я знаю, что iframe - это рабочее решение, но НЕТ, я не хочу его использовать.