从 unity webGL 向 Vue js 发送消息



这更像是一个普遍的问题!我创建了一个 vue js 网页,我想在其中添加一个 unity webgl。从javascript调用unityfunction似乎很容易。但是我找不到合适的解决方案将数据从我的 unity webgl 发送到 vue js。 在手册中,他们建议创建类似 javascript 库的东西,但我认为这在我的上下文中没有意义:这里

有没有人知道如何管理它,或者如果这可能? 提前感谢:(

由于你可以将数据从 vue 发送到 unity,因此将数据从 Unity 发送到 javascript 也很容易。

  1. 创建一个对象来表示我们要发送到 JS 的数据。

    public class Person
    {
    public string Name{get;set;}
    public string PhoneNumber{get;set;}
    }
    
  2. 创建您的UnityJavascipt.jslib文件并将其放置在插件中 文件夹。

  3. 我们将从一个名为SendToJavscript的简单 JavaScript 桥接函数开始

    var UnityJavascipt =
    {
    // This object can hold variables for you.
    $JustAWebGLObject:
    {
    },
    SendToJavscript: function (dataJsonPtr)
    {
    // string paramters from unity get delivered to javascript as pointers.
    // So we get the actual string from the pointer.
    var dataJson = Pointer_stringify(dataJsonPtr);
    // Now convert the string to a javascript object.
    var jsobject = JSON.parse(dataJson);
    // Now you have the jsObject, Vue can access it from here.
    // You can use Vue API from here too.
    // I'll just debug some variables.
    console.log(jsobject.Name); // Kevin
    console.log(jsobject.PhoneNumber); //  011244455
    },
    };
    autoAddDeps(UnityJavascipt , '$JustAWebGLObject');
    mergeInto(LibraryManager.library, UnityJavascipt );
    
  4. 创建 extern PInvoke C# 函数,通过调用它,它调用 Javascipt bridge 函数,此 extern 函数必须在名称、参数计数、参数类型、参数顺序上与 JavascriptSendToJavscriptbridge 函数匹配。

    public static extern void SendToJavscript(string jsonData);

  5. 现在将 person 对象发送到 javascript。

    private void SendToJavscript_Test()
    {
    Person person = new Person();
    person.Name = "Kevin";
    person.PhoneNumber = "011244455";
    // We need to convert the object to javascript, cause we can't send objects 
    directly between C# and javascript.
    // Our bridge function handles converting the object back to a javascript 
    object.
    SendToJavscript(JsonUtility.ToJson(person));
    }
    

只需将包含C#函数和插件的代码的整个文件夹放在已作为包安装的文件夹vue-unity-webgl下,如果您遵循了该方法 https://github.com/votetake/vue-unity-webgl

最新更新