文档
参考链接:https://github.com/wechat-miniprogram/minigame-unity-webgl-transform?tab=readme-ov-file
环境
Unity 2021.3.15f1c1
Unity 2021.2.5f1c302 wxSDK
HybridCLR 5.0.0
YooAsset 1.5.7
CDN环境配置:
后台配置白名单
YooAssets
微信小游戏注意事项:
不支持同步加载。
不支持资源加密。
不支持多Package
关闭WebGL本地缓存
参考地址
因为微信小游戏平台的特殊性,需要关闭WebGL的缓存系统,使用微信自带的缓存系统。
YooAssets.SetCacheSystemDisableCacheOnWebGL();
注意:一定要禁止微信对资源清单版本文件进行缓存(文件名称样例:PackageManifest_xxx.version)
注意:如果未调用该方法,微信小游戏有内存崩溃的风险!
针对微信对于文件缓存的设置方法看这里:资源缓存
我当前使用YooAssets 所以设置忽略 .version
初始化不能使用 单机运行模式,联机运行模式
只能使用 WebGL运行模式
具体请看:https://www.yooasset.com/docs/guide-runtime/CodeTutorial1
不然会提示:
xception: HostPlayMode can not support WebGL plateform ! Please use WebPlayMode
at YooAsset.ResourcePackage.CheckInitializeParameters (YooAsset.InitializeParameters parameters) [0x00000] in <00000000000000000000000000000000>:0
屏幕适配
屏幕信息可以通过 WX.GetSystemInfo(option); 接口获取到
关键是获取到之后如何使用。
适配相关的有3个参数,SystemInfo.screenWidth
SystemInfo.screenHeight
SystemInfo.safeArea
如下图所示,屏幕坐标和 unity 不同,unity 中 ScreenHeight 是从下到山是 y 正方向,而微信中是 从上到下是 y 正方向。适配时候需要注意换算
问题
1、引擎选择
2、导出设置
转换插件不能勾选 IL2CPP Optimize Size,勾选会导致 自动设置为 Faster (smaller) builds,导致报错。
3、StreamingAssets
Unity 转微信小游戏,使用的事 WebGL 平台,此平台下的StreamingAssets 目录不会随着打包自动进入包体。需要使用动态资源加载 aa、ab、yoo 等等方式加载。
AOT 补充元数据的过程不能再使用离线模式,只能使用正式模式或者直接放入 Resources 中加载,但是要注意放入 Resources 中会增加首包大小。
4、代码里不能使用Thread类,Task.Delay 之类的方法需要换成其他方法,我这里有自己写的 job.make 使用携程替换。
注意:
YooAsset 的同步加载方法LoadAssetSync 也不能用,因为其内部使用了Thread 的方式。
使用后报错:
WaitForAsyncComplete failed ! WebGL platform not support sync load method !文章来源:https://www.toymoban.com/news/detail-848928.html
至此所有程序代码在微信开发者工具中正常启动运行,可以上传成功。文章来源地址https://www.toymoban.com/news/detail-848928.html
到了这里,关于Unity转微信小游戏 HybridCLR + YooAsset 实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!