从 unity webGL 发送消息到 vue 页面嵌入它



我有一个包含 unity WebGL 的 vue 网页。现在我希望能够将消息(JSON 和图像(从 Unity 发送到 vue 页面。

我已经知道如何做相反的事情(将字符串从 vue 发送到 unity(

import Vue from 'vue'
import Vuex from 'vuex'
import { mapState, mapMutations, mapActions } from 'vuex'
import Unity3dViewer from '../3d-viewer/3d-viewer';
export default {
methods: {
PlaceItem: function(){
alert("placed object" )
var data = Unity3dViewer.data();
data.gameInstance.SendMessage("BrowserCommunication", "PlaceLight", Vue.prototype.$productID);
},
}
}

但是,我不太清楚如何使反向工作。我看过这个。但是当我尝试将函数放入方法中时

export default {
methods: {
mergeInto(LibraryManager.library, {
Hello: function () {
window.alert("Hello, world!");
},
}) 
}}

它不编译(它期望 a,而不是 LibraryManager.library 中的 .

我还发现这承诺双向沟通,但只能单向文档。

有人知道怎么做吗?

您必须在})末尾添加一个分号。您也不需要}末尾的,,除非您在下面有另一个您目前没有的功能,因此请删除该逗号。

mergeInto(LibraryManager.library, {
Hello: function(param) {
alert(Pointer_stringify(str));
}
});

C# 端:

[DllImport("__Internal")]
private static extern void Hello (string message);

有关 vue-unity 插件的信息,请参阅此页面。

下面是一个基本的插件示例,用于在没有任何外部插件的情况下向 Javascript 插件发送或返回值:

Javascript:

var PluginName = {
//Function without argument 
GetMessage: function(){
var level = "Hello World!";
var buffer = _malloc(lengthBytesUTF8(level) + 1);
writeStringToMemory(level, buffer);
return buffer;
},
//Function with argument 
SendMessage: function(param){
alert(Pointer_stringify(str));
}
};
mergeInto(LibraryManager.library, PluginName);

C#:

[DllImport("__Internal")]
private static extern string GetMessage();
[DllImport("__Internal")]
private static extern void SendMessage(string str);
void Start()
{
string message = GetMessage();
Debug.Log("Message: " + message);
SendMessage("Hello World!");
}

相关内容

  • 没有找到相关文章

最新更新