收藏
回答

【unity转微信小游戏】插件导出首包时,错误带入Assets/Res下字体文件资源

问题类型 插件 AppID 插件版本号 AppID 微信版本 基础库版本
Bug 202306011214 202306011214 wx897da8168de130f7 8.0.37 0.0.0

我们基于unity引擎开发小游戏(https://gitee.com/wechat-minigame/minigame-unity-webgl-transform)过程中,碰到两个问题,想咨询下:

1、使用插件导出首包的时候,除了网址里“资源部署“提及的内容(首资源包即******.webgl.data.unityweb.bin.txt,包含Unity builtin + 勾选的导出场景 + Resources资源),首包还带入了Assets/Res里的资源(字体ttf、TextMeshPro组件转换的贴图.asset文件),这些资源是不应该带进去的,请问导出插件里是否支持出首包时,屏蔽指定文件夹下内容,例如(Assets/Res/)。

开始我怀疑是资源引用关系没缕清导致,想到首包导出只包含三个文件夹里资源的前提下,我做了尝试:

(1)项目中不存在builtin文件夹,所在排除它的可能

(2)Resource里的预制仔细检查,确保Text Mesh Pro组件不使用Res下的字体和.asset,只使用Resource下的字体和.asset,但是导出首包依旧存在Res下字体相关文件进包情况

(3)build setting里去掉所有出包场景,创建一个新的空场景,且删除Resources目录,但是导出首包依旧存在Res进包情况

(4)svn还原Assets目录,单独删除Res目录,出首包,运行和带Res下资源时的首包效果一致(证明首包不需要Res下资源,且不存在首包内资源要用Res下资源的报错)

这些尝试看起来就证明了首包导出时,错误地把Res下字体和.asset文件(由于会生成贴图,所以文件大小很大)带进去了,导致首包大小过大,拉大了玩家进游时长

2、更新机制细节不太清楚 https://developers.weixin.qq.com/minigame/dev/guide/runtime/update-mechanism.html

(1)这个更新规则是只给正式版本用吗?还是微信sdk里会自动识别当前是体验版本、审核版本、正式版本,然后更新到对应版本的最新包?例如:有更新的体验版本在测试,正式版本不会更新到吧?

(2)升级到新版本后,旧版本的代码包和资源会自动删除吗?

没有找到相关的详细说明文档,有相关网址麻烦提供下


回答关注问题邀请回答
收藏

2 个回答

  • kun
    kun
    2023-06-15
    1. 首包会包含什么内容是unity引擎打包的逻辑,正常会包含Assets目录下被构建的场景所引用且未被AssetBundle或Addressables打包的资源。仔细检查下引用关系,unity的editor log,以及AssetStudio等工具都可以分析包内包含什么文件。
    2. 版本更新

    2.1 正式版才会有版本更新,只会更新最新的正式版。更新机制是小游戏/小程序环境的逻辑,微信sdk不做识别。

    2.2 代码包的缓存和淘汰,游戏侧不用关心。游戏资源包的缓存淘汰策略参考:https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/main/Design/FileCache.md

    2023-06-15
    有用 1
    回复 1
    • Popeye
      Popeye
      2023-06-25
      谢谢大佬提示,问题1找到原因了:Text Mesh Pro默认配置文件里自动使用了游戏里较大的字体库导致首包过大,修改后正常。
      2023-06-25
      回复
  • 好名字
    好名字
    01-30

    大佬,问一下,tmp字体应该怎么处理哈,我现在是走的下载,微信开发工具字体正常,真机显示错乱。

    是应该预加载或者怎么加载tmp字体吗

    01-30
    有用
    回复
登录 后发表内容