找回密码
 立即注册
首页 业界区 安全 团结引擎发布小游戏与js版本SDK的互相调用 ...

团结引擎发布小游戏与js版本SDK的互相调用

毋献仪 昨天 22:15
适应于团结引擎版本发布的全部小游戏,包括但不限于如下:
微信小游戏、bilibili小京戏、京东小游戏、抖音小游戏、支付宝小游戏、快手小游戏等、宿主小游戏。
团结引擎版本:1.6.2
一、Unity调用Js代码:
1、WX-WASM-SDK-V2目录下的Editor/template/minigame目录下创建一个GameRecommend.js文件。
不同的小游戏可能WX-WASM-SDK-V2这个目录不一样,比如宿主小游戏好像是TJ-WASM,
但是子目录都是template/minigame,如果不存在,就创建。
1.png

2、GameRecommend.js里的代码如下:
代码说明:这里是js代码,不是C#代码。
没有funtion的代码会在启动时直接执行。funtion方法可以在Unity中调用。
  1. // 让 window.GameRecommend 变成对象
  2. window.GameRecommend = window.GameRecommend || {};
  3. // 把方法挂上去
  4. window.GameRecommend.doLogin = doLogin;
  5. // 同时兼容挂载到 GameGlobal(你原有逻辑)
  6. if (typeof GameGlobal !== "undefined")
  7. {
  8.     GameGlobal.doLogin = doLogin;
  9. }
  10. function sendMsgToUnity(msg) {
  11.     // 兼容 Unity 实例的不同挂载方式(微信小游戏 Unity 适配的两种常见形式)
  12.     const unityInst = window.unityInstance || GameGlobal.manager?.gameInstance;
  13.     if (unityInst) {
  14.         unityInst.Module.SendMessage("GameGlobal", "OnLoginSuccess", msg);
  15.     } else {
  16.         console.error("Unity 实例未加载完成,500ms后重试");
  17.         setTimeout(() => sendMsgToUnity(msg), 500);
  18.     }
  19. }
  20. async function doLogin() {
  21.     try {
  22.         console.error("向Unity发送消息:", "现在开始");
  23.         sendMsgToUnity("测试Unity接收")
  24.         console.error("向Unity发送消息:", "发送结束");
  25.     } catch (err) {
  26.         console.error("失败:", err);
  27.     }
  28. }
复制代码
3、在game.js中导入这个GameRecommend.js。
2.png

3.png

 4、在C#代码中调用:
  1. WX.CallJSFunction("GameRecommend", "doLogin", new object[0]);
复制代码
这里是C#代码,调用GameRecommend.js中没有参数的doLogin方法,第3个参数需要new object[0]。
不要再使用webgl中传统的Application.ExternalCall()方式来调用。
 运行之后,在GamRecommend.js的doLogin方法中可以打印内容。
 
二、在js中调用Unity中的C#代码。
1、unity层面和传统的方式一样,首先设置一个gameobject,名字取为GameGlobal,
随便给个脚本,里面有一个public的非全局方法,带一个参数,和传统的接收一样。
4.png

 2、js中的调用:
5.png

 区别于传统的webGL,传统webgl一般是window.unityInstance可以直接用,但在小游戏里需要再点一个module出来。
再启动测试。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册