Создайте единую сборку WebGL и предоставьте необходимый API-интерфейс в качестве общедоступных методов в сценарии Unity, который вы присоединяете к GameObject.
Возможно, вы сможете использовать UnityScript, который немного похож на JavaScript, для написания скрипта, если вы используете старую версию Unity. На момент написания этой статьи Oculus рекомендует версию 2017.4.11f1, которая, как я думаю, все еще может поддерживать UnityScript.
Одна из основных причин, по которым вы видите гораздо меньше информации о UnityScript, заключается в том, что Unity отошла от UnityScript и стала поддерживать только C #.
Но независимо от того, кодируете ли вы скрипт OVRManager в C # или UnityScript, Unity сделает методы вызываемыми из вашего JavaScript.
Вызов функций сценариев Unity из JavaScript
Иногда вам нужно отправить некоторые данные или уведомление в Unity
скрипт из JavaScript браузера. Рекомендуемый способ сделать это
это вызвать методы на GameObject
s в вашем контенте. Если вы делаете
вызов из плагина JavaScript, встроенного в ваш проект, вы можете
используйте следующий код:
SendMessage(objectName, methodName, value);
Где objectName
- имя объекта в вашей сцене; methodName
есть
имя метода в сценарии, в данный момент прикрепленного к этому объекту;
значение может быть строкой, числом или может быть пустым. Например:
SendMessage('MyGameObject', 'MyFunction');
SendMessage('MyGameObject', 'MyFunction', 5);
SendMessage('MyGameObject', 'MyFunction', 'MyString');
Если вы хотите позвонить из глобальной области
страницу встраивания, см. раздел «Видимость кода» ниже.
Видимость кода
Начиная с Unity 5.6 весь код сборки выполняется самостоятельно.
объем. Такой подход позволяет встроить вашу игру в
произвольная страница, не вызывающая конфликтов с кодом встраивания страницы,
а также позволяет встраивать более одного билда в один и тот же
стр.
Если у вас есть весь код JavaScript в виде плагинов .jslib
внутри вашего проекта, тогда этот код JavaScript будет работать внутри
та же область, что и для скомпилированной сборки, и ваш код должен работать
так же, как в предыдущих версиях Unity (например,
Следующие объекты и функции должны быть непосредственно видны из
Код плагина JavaScript: Модуль, SendMessage, HEAP8, ccall и т. Д.).
Однако, если вы планируете вызывать внутренние функции JavaScript
исходя из глобальной области встраивания, вы всегда должны предполагать,
что на странице есть несколько сборок, поэтому вам следует
явно укажите, на какую сборку вы ссылаетесь. Например, если
ваша игра была создана как:
var gameInstance = UnityLoader.instantiate("gameContainer", "Build/build.json", {onProgress: UnityProgress});
Затем вы можете отправить сообщение в сборку, используя
gameInstance.SendMessage () или откройте объект модуля сборки, используя
gameInstance.Module.