当前位置: 首页 > news >正文

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

适应于团结引擎版本发布的全部小游戏,包括但不限于如下:

微信小游戏、bilibili小京戏、京东小游戏、抖音小游戏、支付宝小游戏、快手小游戏等、宿主小游戏。

团结引擎版本:1.6.2

一、Unity调用Js代码:

1、WX-WASM-SDK-V2目录下的Editor/template/minigame目录下创建一个GameRecommend.js文件。

不同的小游戏可能WX-WASM-SDK-V2这个目录不一样,比如宿主小游戏好像是TJ-WASM,

但是子目录都是template/minigame,如果不存在,就创建。

image

2、GameRecommend.js里的代码如下:

代码说明:这里是js代码,不是C#代码。

没有funtion的代码会在启动时直接执行。funtion方法可以在Unity中调用。

// 让 window.GameRecommend 变成对象
window.GameRecommend = window.GameRecommend || {};
// 把方法挂上去
window.GameRecommend.doLogin = doLogin;
// 同时兼容挂载到 GameGlobal(你原有逻辑)
if (typeof GameGlobal !== "undefined")
{GameGlobal.doLogin = doLogin;
}

function sendMsgToUnity(msg) {// 兼容 Unity 实例的不同挂载方式(微信小游戏 Unity 适配的两种常见形式)const unityInst = window.unityInstance || GameGlobal.manager?.gameInstance;if (unityInst) {unityInst.Module.SendMessage("GameGlobal", "OnLoginSuccess", msg);} else {console.error("Unity 实例未加载完成,500ms后重试");setTimeout(() => sendMsgToUnity(msg), 500);}
}async function doLogin() {try {console.error("向Unity发送消息:", "现在开始");sendMsgToUnity("测试Unity接收")console.error("向Unity发送消息:", "发送结束");} catch (err) {console.error("失败:", err);}
}

3、在game.js中导入这个GameRecommend.js。

image

image

 4、在C#代码中调用:

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的非全局方法,带一个参数,和传统的接收一样。

image

 2、js中的调用:

image

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

再启动测试。

http://www.jsqmd.com/news/535658/

相关文章:

  • 亿坊|外卖点餐系统1000+案例|一键部署、提供源码、多端支持!
  • 分布式AI编排引擎:重新定义多模型协同开发
  • Linux中Docker介绍与使用小白篇
  • 基于WVP-Pro与ZLMediaKit的国标GB28181视频平台:从零部署到云端录像实战
  • 【数据库】Navicat Premium 15 离线激活全攻略:从安装到破解
  • GCP 运维实战指南:从 CLI 基础到 Vertex AI 项目管理
  • 2023年图像裁剪算法最新进展:从传统方法到深度学习
  • 3D高斯溅射实战:手把手教你用Python实现实时辐射场渲染(附代码)
  • 智能客服对话大模型实战:从架构设计到生产环境部署
  • 3步突破Switch联机限制:ldn_mitm跨网络联机完全指南
  • Armbian系统版本管理实战指南:从问题诊断到最佳实践
  • 乌班图常用命令
  • YOLOv8巅峰之作:CA(Coordinate Attention)坐标注意力机制全方位解析与实战改进
  • Lightpanda:解决现代Web自动化性能瓶颈的创新方案
  • Mirage Flow在Linux环境下的部署与优化:常用命令实战指南
  • COMSOL相场法模拟水力压裂案例研究:从单一裂缝到复杂多簇裂缝的扩展与交互
  • 3大突破!ValveResourceFormat如何重构游戏资源解析工作流?
  • 智能多模态内容分析平台:从数据采集到深度理解的全流程解析
  • Java全栈工程师面试实录:从基础到实战的深度探索
  • SpringBoot项目启动报错:Hikari连接池找不到MySQL驱动?5分钟快速修复指南
  • 5个维度定制Windows界面:让ExplorerPatcher为你打造高效工作环境
  • Joy-Con Toolkit 终极指南:释放Switch手柄的完整潜力
  • WrenAI智能查询工具完全指南:从环境配置到业务应用
  • 百奥赛图与Moonlight Bio达成战略合作协议,开发新一代细胞疗法
  • 告别模组管理烦恼:Scarab让空洞骑士模组体验升级
  • 轻量编辑器的效率革命:Notepad Next如何重塑跨平台文本处理体验
  • 地缘冲突背景下社会工程学攻击的演化机理与防御范式
  • 基于蜣螂优化算法的无线传感器网络(WSN)覆盖优化研究——Matlab实现与0/1模型寻优
  • 2026年SAE法兰厂家权威推荐榜:SAE焊接法兰SAE扩口式法兰生产SAE扩口/保持环法兰的厂家无焊接SAE法兰有船级社形式认可证书的SAE法兰厂家全品类实力解析与选购指南 - 呼呼拉呼
  • OFA模型与PyTorch集成:自定义训练与微调