我现在有一个VueJs项目,我正在其中构建一个网页。为了显示3D内容并让用户使用它,我想将Unity项目嵌入为WebGL。我不是专业的程序员,我的知识比我在互联网上可以找到的更多。
首先,我创建了一个插件,如here所述。我的.jslib文件如下所示:
var UnityJavascipt = { $JustAWebGLObject: { }, SendToJavscript: function () { console.log("worked!") } }; autoAddDeps(UnityJavascipt , '$JustAWebGLObject'); mergeInto(LibraryManager.library, UnityJavascipt );
我在Vue中嵌入了我的Unity WebGl:
<template> <unity src="static/Build/game.json" width="1000" height="600" unityLoader="static/Build/UnityLoader.js" ref="myInstance"></unity> </template>
我也可以从C#脚本中调用“ SendToJavaScript”。但是现在对我来说它变得不清楚,因为我希望能够从外部JavaScript调用“ SendToJavaScript”函数(或以后将添加的任何其他函数)。在手册中,他们参考emscripten page以获取更多详细信息。但是对我来说,这一切都很混乱。我已经尝试在VueJs中像这样调用我的函数:
_SendToJavaScript()
但是我总是得到一个ReferenceError:_SendToJavaScript没有定义,我也在这里的论坛上阅读过,这样可以调用该函数:
UnityInstance.Module.asmLibraryArg._SendToJavaScript()
UnityInstance是我的index.html文件中的变量,在其中实例化UnityLoader。但是我又收到参考错误。
如果有人可以解释我在做什么错,这将非常有帮助... WebGL和Vue之间的通信对于我的项目至关重要,但我在这里呆了几天。所以提前谢谢!
我现在有一个VueJs项目,我正在其中构建一个网页。为了显示3D内容并让用户使用它,我想将Unity项目嵌入为WebGL。我不是专业人士...
使用unityInstance.SendMessage()
documented here.