关于更换游戏主题是否有什么好的解决思路

项目要求是这样的,远程服务端会存放所有的美术资源,前端处需要根据玩家选购买的主题来进行全局的更换,资源不能存放本地只能存放远程的话,是否有什么好的解决思路,特别是服务器的宽带实在是感人…

这个主题更换是涉及到所有场景的所有sprite的更换,想想好头疼:joy:

又想马儿好,又想马儿不吃草?有点难度啊。

CDN可以啊

资源名称全变成字符串别名,一一对应,数据驱动。就像中英文选择一样,一个json表。

或者玩点高难度的,外观模式、抽象工厂。

主题有N套,对应Scene也设计N套,有个索引,需要哪套主题,就加载该索引的Scene,这样子可以不可以

又想鸡儿肥,又想鸡儿不压称~

我不太确定你的需求,但是大概你可以保存每个资源meta的uuid,然后需要换哪个资源直接更改scene里面对应节点的uuid,这个方法是可以实现的,但是不是合适就看你了

这个不行,要求是同一个scene,因为主题后期要添加,但是他们希望前端就这么打包一次,以后只用更新服务端数据,不再去动客户端了

:sob:永远不知道产品经理脑子里在想啥

是这样的,就是客户端有几个主题可以更换,要求把所有的主题的美术素材都留在服务器,然后客户端可以通过url去下载对应的美术资源,更换客户端中所有的sprite

不大懂什么意思,能麻烦大佬详细的说一下吗

CDN是指内容分发网络吗?产品经理的意思是我不能去修改服务端的内容:sob:

配置一个表,表里的结构{“皮肤1”:[“资源1_皮肤1”,“资源2_皮肤1“],“皮肤2”:[“资源1_皮肤2”,“资源2_皮肤2“]},按照每套皮肤的名字去读取相应的名字

感觉我能力有限,想到一个,就是会很麻烦,每次创建Scene,就获取该场景下的所有Sprite,然后根据主题动态替换SpriteFrame了

那这样加载的时间会不会很长?

我也是这么想的,但是感觉一是写起来太麻烦,二是图片资源全在服务器,下载再加载估计要用很长时间

:joy:资源本来不就在服务器了吗,总是要加载的,要做的就是提前加载需要的主题资源,或者默认的scene是没有资源的,都是空的sprite,不过没试过这样子

服务器带宽限制了下载速度,嫌慢那么就提升服务器带宽。你们加载的皮肤资源很大吗,一套皮肤有几兆?

所以就是要提前下载然后缓存到本地对吧?微信小游戏似乎没有缓存的功能吧?