3.x换皮时头疼的问题

  • Creator 版本: 3.7.4

项目换皮时遇到个头疼的问题,项目里有个返回按钮,每一关都是单独的一份图片,也就是同一张图存在几十份,现在想用脚本遍历一下直接替换成同名的另一张图片,但是发现替换后,编辑器里用到该图片的精灵sizeMode从TRIMMED自动变成了CUSTOM,原因是替换的新图片和原来的图片大小不相同,而编辑器里虽然样式换成了新图片,但是大小还是和旧图片相同,请问这个有什么方法解决吗?
image

我尝试了另一种方法,在打开页面预制的情况下,将新图片直接拖动进编辑器的旧图片存放的文件夹,图片能更新,且预制里的sizeMode也不会发生改变,即替换正常。但是当我在编辑器的资源管理器里搜索图片名称,并一个一个替换成新图片时,打开用到的预制,发现图片还是变成了CUSTOM,大小保持着原来的大小,猜测应该是因为替换时没有打开对应的预制体造成的。

事实上这个问题在我编写插件时也遇到了,插件功能为一键替换游戏logo的图片,发现当两张logo图片尺寸不同时,logo会发生形变,原因也是sizeMode变成了CUSTOM。

占个楼,有同样困惑,看看有没有解决办法

要不来一个强行解决的方法
先记录每张图片的sizeMode,然后替换,然后替换完以后再改meta

改图片的meta没有用 :joy:因为是预制里精灵的大小被改了,即图片被拉伸了

你的插件能识别新图片的尺寸吗?如果可以,在替换图的时候,要让节点尺寸和新图片的尺寸保持一致,这样sizeMode就不会变了。

我是直接在导入项目前,在vscode里面用替换的方式把sizeMode全部改了

请问用哪个api修改节点尺寸呢?
以“返回”按钮举例的话,用到这个图片的预制体比较多,有比手动打开修改尺寸更快速的方法吗?

我能想到的方法是全局替换sizeMode为TRIMMED,但是项目中应该确实有些节点需要用到其他sizeMode,这么改会出问题。
以“返回”按钮举例的话,用到这个图片的预制体比较多,请问有什么方法能定位到使用了这张图片的预制体以及对应的节点吗?

image
改引擎试试吧,
注意:改完这个会引发其他问题,比如拖拽一个引擎进度条到场景时,会出现进度条尺寸显示问题,调一下就好,我感觉利大于弊

触及到了我知识的盲区了 :rofl:这种一个节点多种不同图片的我都是动态加载图片的,换皮也不会出现你的这个问题。

image 这个差点忘了

1赞

可以了!
改完后,点击编辑器菜单栏-开发者-编译引擎,再打开,发现预制里的图片尺寸都是新图片的尺寸了