从 unity webGL 向 Vue js 发送消息

Sending a message from unity webGL to Vue js

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

有没有人知道如何管理它,或者这是否可能? 提前致谢:)

由于您可以将数据从 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桥接函数,这个extern函数必须匹配名称中的Javascript SendToJavscript桥接函数,参数个数、参数类型、参数顺序。

    public static extern void SendToJavscript(string jsonData);

  5. 正在向 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));
    }
    

如果您按照 https://github.com/votetake/vue-unity-webgl