Unity 打包webGL与前端交互[]

一、前端发数据到unity程序

写js->unity

该过程不需要添加额外的jslib文件,可在脚本中直接调用sendMessage。

只需要把打包好的webGL程序包放到合适的地方(http服务可调用),修改webgl包里有index.html文件

调用方式如下

 <buttontype="button"onclick="callUnity('这是发送给unity的一封信')">send</button>
     ...
     <script>
           varmyInstance=null;
           //后续进行实例化
     ​
           //js调用C#方法
           functioncallUnity(msg){
             myInstance.SendMessage("sendPanel","recvmsg",msg);
           }
     ​
           varscript=document.createElement("script");
           script.src=loaderUrl;
           script.onload= () => {
             createUnityInstance(canvas, config, (progress) => {
               progressBarFull.style.width=100*progress+"%";
             }).then((unityInstance) => {
               myInstance=unityInstance;
               loadingBar.style.display="none";
               fullscreenButton.onclick= () => {
                 unityInstance.SetFullscreen(1);
               };
             }).catch((message) => {
               alert(message);
             });
           };
     ​
     </script>

上述SendMessage方法的三个参数依次是:

  • unity程序中挂载c#脚本的物体的name

  • c#脚本实现的接收前段传参的中的函数

  • 实际传的参数

测试效果,点击页面中send按键,unity文本框中显示收到信息。


二、unity程序发送数据到前端

unity->js

1.新建×××.jslib文件

在unity项目Assets/Plugins下新增test.jslib文件

sendInto(LibraryManager.library, {

SendMsgToFrontend: function (msg) {

console.log("SendMsgToFrontend msg=="+msg)

},

})

2.unity声明调用函数并调用

在挂载接收消息的c#脚本中声明js函数

并在预期的地方调用该函数

[DllImport("__Internal")]

publicstaticexternstringSendMsgToFrontend(stringmsg);

publicasyncvoidButtonClick()

{

SendMsgToFrontend("send: message to js.");

}

3.js脚本中接收数据

js脚本中写监听方法

varmyInstance=null;

//C#调用js方法

functionSendMsgToFrontend(msg){

windows.alert(msg);

}

通过前端的console方式查看收到的结果

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值