从 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 也很容易。
创建一个对象来表示我们要发送给 JS 的数据。
public class Person
{
public string Name{get;set;}
public string PhoneNumber{get;set;}
}
创建您的 UnityJavascipt.jslib
文件并将其放入插件中
文件夹.
我们将从一个名为 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 );
创建extern PInvoke C#函数,通过调用它,调用Javascipt桥接函数,这个extern函数必须匹配名称中的Javascript SendToJavscript
桥接函数,参数个数、参数类型、参数顺序。
public static extern void SendToJavscript(string jsonData);
正在向 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));
}
这是一个比较笼统的问题!我创建了一个 vue js 网页,我想在其中添加一个 unity webgl。从 javascript 调用统一函数似乎很容易。但是我找不到合适的解决方案来将数据从我的 unity webgl 发送到 vue js。 在手册中,他们建议创建类似 javascript 库的东西,但我认为这在我的上下文中没有意义:here
有没有人知道如何管理它,或者这是否可能? 提前致谢:)
由于您可以将数据从 vue 发送到 unity,因此将数据从 unity 发送到 javascript 也很容易。
创建一个对象来表示我们要发送给 JS 的数据。
public class Person { public string Name{get;set;} public string PhoneNumber{get;set;} }
创建您的
UnityJavascipt.jslib
文件并将其放入插件中 文件夹.我们将从一个名为
的简单 javascript 桥函数开始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
桥接函数,参数个数、参数类型、参数顺序。public static extern void SendToJavscript(string jsonData);
正在向 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)); }