如何在构建后或者途中删除Resources下某个文件,比如SpriteFrame?

如题,我有一个多语言插件,但是不需要用到游戏内切换语言,所以我打算吧没用到语言以及引用的资源在构建时删掉以减少包体体积。
查看了自定义构建流程后知道了需要使用hooks来处理,但是该怎样才能找到我需要的资源?
现在我知道目标资源的uuid,但不知道该怎么找到它并将其中构件中移除。

有大佬知道吗

你可以用nodeJs在构建完成后再删除文件,uuid就是文件名

提供个思路:写个自动化构建脚本。

  1. 在执行构建命令前,将不需要的文件(多语言一般是文件夹吧)删除后再执行构建,
  2. 构建完成后再恢复删除文件(建议通过git命令来恢复)

是指从构建出来的如web-mobile的文件里去删除吗?好像这样也行欸

也是个解决方案,一开始我是想着备份一下文件,先删掉再恢复回来的

不是,是从工程里面删除。相当于全程手动删除项目不需要的文件和文件夹(这个目录可以定义到自动化脚本文件中),然后再构建,构建完再恢复。只不过手动改为脚本自动化了

是项目工程。项目一般都有git的

那为什么不给多语言的图片做分包呢,打包的时候移除勾选就行了

因为我是做Playable的,不需要分包 :joy:

不能直接禁用插件吗

禁用插件是什么意思?禁用多语言插件?

为啥不一种语言资源一个bundle包,打包的时候不勾选不就行了?插件修改下读取语言资源的bundle包和路径,应该不难吧,不一定要放到 Resources里面吧

没试过playable能否用bundle

是的,因为看起来你似乎不需要多语言呀

我们需要做多语言,我自己写了个多语言插件

知道目标资源的uuid,2.4.11在插件里 Editor.assetdb.uuidToUrl(uuid) 就可以拿到路径,拿到路径后,调用 nodejs 的 fs 相关 api 删除文件就行。想构建后删除就监听 build-finished 事件。不过 3.x 里可能改名了,你可以自己查一下或者问下 AI。