赞
踩
unity打包成webgl的时候,会自动在window上挂载unityInstance。可以在js代码中调用unityInstance.SendMessage向unity发送消息。
但是使用微信小程序官方打包插件(minigame-unity-webgl-transform),将unity项目打包成小游戏之后,在js脚本的window上找不到unityInstance。在微信开发者工具的控制台的window上也找不到。(unity版本2019.4.33f1,微信开发者工具版本1.05.2204250,插件版本minigame.202206201602)
手动在window上挂载unityInstance ,在游戏加载好之后运行这几行代码,游戏未加载好的时候是没有unityNamespace的:
- if (typeof window !== 'undefined' && typeof window.unityInstance === 'undefined') {
- if (window.unityNamespace && window.unityNamespace.Module) {
- // console.log("[set]: window.unityInstance = window.unityNamespace.Module");
- window.unityInstance = window.unityNamespace.Module;
- } else {
- console.error('缺少unityInstance');
- }
- }
以上代码可以插入到以下两个地方之一,(二选一即可):
在微信开发者工具,项目目录里找到“game.js”,然后找到“gameManager.onModulePrepared”,在它回调方法的开头加入这段代码。
这个就需要开发者自己判断挂载时机了,而且需要在unity端调用js函数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。