游戏更换主题

游戏有更换主题的需求,就是场景中的UI需要根据主题来显示,creator有没有好的设计思路,

在creator中资源是不区分路径的,我资源区分放置之后怎么能实现更换主题后加载这个主题文件夹中的同名同位置的资源

实现很简单啊。所有主题图片加载都采用动态加载。比如
ResManager.loadSprite((spriteFrame)=>{this.icon.spriteFrame = spriteFrame;});

loadSprite函数中按照主题加载图片

我觉得这样的话就跟creator拖动式制作UI相违背了,你设想一下,我以后每次增加新的UI的时候,图片都不能实时出现(节点只能创建一个空渲染节点,当运行的时候再去加载图片),简直就是一朝回到解放前啊,我觉得不是你很合理

我们现在就是经常换主题,他把大厅很多静态的图都给替换了,prefab里面的以及弹窗里面的没有换

感觉你们不像更换主题,倒像是更换背景:joy:

我懂你的意思了。实现思路一样。你开发时候采用拖动的方式,然后写一个加载函数,根据当前的sprite名称去resources下查找相应主题的同名图片就行了。代码思路都很简单。如果你所有sprite都要根据主题替换,你甚至可以写个简单的工具一键生成相关代码。如果只是替换部分,就注册一下你要替换的sprite就行了,向这样 Theme.load(sprite); load中直接根据你当前spriteFrame的名称去动态加载同名图片。

能给做出来这个就已经不错了,全部都换的话多出来图片资源太多了