1
2
4
新手上路
微信小游戏早期的包体限制只有4M。随着时代发展,小程序的体量越来越大,微信官方也引入了小程序分包加载机制,将包体总限制提升到如今的20M。
以我开发的微信小游戏《护战少女》为例,平均一张角色立绘有300KB,除掉其它音效、粒子、背景图和其他UI等资源,剩余空间大约只能容纳下三十张立绘。虽然可以通过压缩多媒体素材来节约一些空间,但长远来看,这始终都会是制约游戏发展的一个问题。
实际上,将资源分离、动态加载的好处有很多!这一做法不仅仅能够帮助微信小游戏绕过代码包限制,还能够:(1) 减少首包体积。缩短游戏启动时间,降低首屏等待时的玩家流失。(2) 将资源下载进程隐藏到幕后。玩家无须等待所有资源加载完成,例如在后台下载素材的同时,玩家可以正常浏览游戏菜单。(3) 方便游戏资源的替换和修改。开发者无需重新发布版本更新,可以直接在后台替换文件实现素材更新。(4) 对于多个游戏共用同一个云开发账户的情况,可以实现资源的游戏间共享。
也许你会产生疑问:fileid像是多出来的一道工序,还是要用它换成临时链接,最后用临时链接来下载文件。那为什么云开发不直接开放一个永久链接用于文件下载呢? 这实际上是出于安全性的考虑。如果开发者直接将文件的真实链接写在程序包中,它有可能被用户破解,用户就可以直接凭链接随意读取你的资源了!如果你的云文件涉及到机密信息、隐私信息,这就将成为一个安全隐患。所以云开发需要对真实链接进行一道封装,不鼓励将它赤裸裸地写在代码中。这样一来,就算用户找出了fileid,但是未经过云开发的身份验证,也就无法换取文件的真实链接,无法读取你的云文件。
注1:this.app是腾讯云开发的总变量,且是Web版SDK的用法。如果你用的是微信自带的云开发服务,则应使用wx.cloud。它们的初始化方法具体请参考官方文档[1]。 注2:getTempFileURL()是批量换取的,但是一次最多可换取50个文件。如果文件数超过50个,则需要分批换取[1]。
使用道具 举报
0
本版积分规则 发表回复 回帖后跳转到最后一页
Archiver|手机版|小黑屋|八旗云
GMT+8, 2025-3-15 17:12 , Processed in 0.094846 second(s), 23 queries .
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.