当前位置:   article > 正文

[Unity转小游戏]微信开发者工具/微信小游戏中找不到unityInstance.(unityInstance is not defined)_createunityinstance is not defined

createunityinstance is not defined

问题

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的:

  1. if (typeof window !== 'undefined' && typeof window.unityInstance === 'undefined') {
  2. if (window.unityNamespace && window.unityNamespace.Module) {
  3. // console.log("[set]: window.unityInstance = window.unityNamespace.Module");
  4. window.unityInstance = window.unityNamespace.Module;
  5. } else {
  6. console.error('缺少unityInstance');
  7. }
  8. }

以上代码可以插入到以下两个地方之一,(二选一即可):

①插入到小游戏gameManager.onModulePrepared的回调方法里

在微信开发者工具,项目目录里找到“game.js”,然后找到“gameManager.onModulePrepared”,在它回调方法的开头加入这段代码。

 

②用户初次点击游戏界面或unity组件加载完成的时候,进行挂载。

这个就需要开发者自己判断挂载时机了,而且需要在unity端调用js函数。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/126822?site
推荐阅读
相关标签
  

闽ICP备14008679号