从Vue访问WebGL项目中的jslib文件

问题描述 投票:-1回答:1

现在,我在VueJs项目中有一个嵌入式Unity WebGl。通过Unity,我可以在我的asset / pugins文件夹中的jslib文件中调用一个函数。

我可以这样在自己的已挂载函数中统一调用我的函数(self = this):

 self.$refs.graphics.message("GameObject", "set_height", heigth)
 self.$refs.graphics.message("GameObject", "set_width", width)

这是我的.jslib文件中的代码。

var UnityJavascipt =
{
    // This object can hold variables for you.
    $JustAWebGLObject:
    {

    },

    SendToJavscript: function (dataJsonPtr)
    {
        var name = Pointer_stringify(dataJsonPtr);
        console.log(name);

    },

};
autoAddDeps(UnityJavascipt , '$JustAWebGLObject');
mergeInto(LibraryManager.library, UnityJavascipt );

我可以从Vue调用SendToJavaScript(或以后添加的任何其他函数吗?

提前感谢!

unity3d vue.js unity-webgl
1个回答
0
投票

是,您可以,但是请特别注意该块

$JustAWebGLObject:
    {

    },

将其视为C#中称为JustAWebGLObject的类,您可以在其中定义函数,变量等。

    $JustAWebGLObject:
    {
        ClassFunction: function()
        {

        },
    },

您可以使用]从vue呼叫[C0

ClassFunction

对象JustAWebGLObject.ClassFunction(); 之外的全局函数呢?

像您的JustAWebGLObject这样的全局函数,在构建到全局SendToJavscript时会统一编译它们,并在它们的下划线加UnityLoader.js前缀,以便从Vue或任何其他javascript库甚至是另一个函数中调用此全局函数在同一个jslib文件中,您需要在其名称前添加_

简单呼叫_

但是,请注意,此函数接受来自C#的指向javascript的指针,但是如果另一个javascript函数调用它并将其传递给字符串,则它将作为字符串传递,因此您需要从调用函数句柄javascript,并来自C#,类似于

_SendToJavscript(somestring);

来自C# SendToJavascript: function(pointer,actualString) { var str = ""; if(actualString) str = actualString; else str = Pointer_stringify(pointer); },

来自Javascript SendToJavascript("hello",null); // First parameter will be sent as a pointer.

© www.soinside.com 2019 - 2024. All rights reserved.