Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 从unity webGL向Vue js发送消息_Unity3d_Vue.js_Communication_Unity Webgl - Fatal编程技术网

Unity3d 从unity webGL向Vue js发送消息

Unity3d 从unity webGL向Vue js发送消息,unity3d,vue.js,communication,unity-webgl,Unity3d,Vue.js,Communication,Unity Webgl,这是一个更普遍的问题!我创建了一个vue js网页,我想在其中添加一个unity webgl。从javascript调用unityfunction似乎很容易。但我找不到合适的解决方案将数据从unity webgl发送到vue js。 在手册中,他们建议创建类似javascript库的东西,但我认为这在我的上下文中没有意义: 有没有人知道如何管理,或者如果有可能的话? 提前感谢:)因为您可以将数据从vue发送到unity,所以将数据从unity发送到javascript也很容易 创建一个对象来表示

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

有没有人知道如何管理,或者如果有可能的话?
提前感谢:)

因为您可以将数据从vue发送到unity,所以将数据从unity发送到javascript也很容易

  • 创建一个对象来表示要发送给JS的数据

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

  • 我们将从一个名为
    SendToJavscript

    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 );
    
  • 创建extern PInvoke C#函数,通过调用它,它调用Javascipt桥函数,该extern函数必须在名称、参数计数、参数类型、参数顺序等方面与Javascript
    SendToJavscript
    桥函数匹配

    公共静态外部void SendToJavscript(字符串jsonData)

  • 现在将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文件夹下即可,如果您遵循该方法安装了vue unity webgl,您提供的链接在任何上下文中都是有意义的,不知道如何实现它,这是另一回事,您可以发布与javascript交互的试用,以及您遇到的任何错误/障碍,我们可能会提供帮助。对不起,我认为我不够具体。我可以在unity中从.jslib文件调用函数。但我这里有一个Vue js项目,如果我能够将数据从Embeddet unity应用程序发送到Vue js,那就太好了。他们声称存在双向沟通的可能性,但他们只解释了一种方式。所以我在寻找另一种方法。非常感谢你详细的回答!但是,当jslib文件位于WebGL项目中时,如何从Vue访问它?