Вызов функции Unity WebGl из JavaScript (Vue) - PullRequest
0 голосов
/ 27 октября 2019

У меня есть проект VueJs прямо сейчас, где я создаю веб-страницу. Чтобы показать 3D-контент и позволить пользователю работать с ним, я хотел встроить Unity Project в WebGL. Я не профессиональный программист, мои знания более понятны из того, что я могу найти в Интернете.

Прежде всего, я создал плагин, как объясняется здесь . Мой файл .jslib выглядит так:

var UnityJavascipt = {

 $JustAWebGLObject:
  {
  },
  SendToJavscript: function ()
  {
              console.log("worked!")
  }     
}; autoAddDeps(UnityJavascipt , '$JustAWebGLObject'); mergeInto(LibraryManager.library, UnityJavascipt );

Я встраиваю свой Unity WebGl в Vue:

<template>
  <unity src="static/Build/game.json" width="1000" height="600" unityLoader="static/Build/UnityLoader.js" ref="myInstance"></unity>  
</template>

Я также могу вызывать «SendToJavaScript» из моего C # Script. Но теперь это начинает становиться неясным для меня, так как я хочу иметь возможность вызывать мою функцию «SendToJavaScript» (или любую другую, которая будет добавлена ​​позже) из внешнего JavaScript. В руководстве они ссылаются на страницу emscripten для получения более подробной информации. Но для меня это все просто очень запутанно. Я уже пытался вызывать свою функцию в VueJs следующим образом:

_SendToJavaScript()

Но я всегда получаю ReferenceError: _SendToJavaScript не определен. Я также читал здесь на форуме, что можно было бы вызвать функцию какчто:

UnityInstance.Module.asmLibraryArg._SendToJavaScript()

UnityInstance - это переменная из моего файла index.html, где создается экземпляр UnityLoader get. Но снова я получаю ошибку ошибки.

Было бы очень полезно, если бы кто-то мог объяснить, что я делаю неправильно ... Связь между WebGL и Vue важна для моего проекта, но я застрял здесьнесколько дней. Так что спасибо заранее !!

1 Ответ

0 голосов
/ 28 октября 2019

Использование unityInstance.SendMessage() , задокументированное здесь.

Вы можете передать обратный вызов или вызвать определенную .jslib функцию в конце вашего метода C #.

...