通过反射修改Unity PSDImporter,使其便于自动生成帧动画资源(兼容2022.1/2)
2022-06-28 13:46 作者:DarkDreamStudio | 我要投稿
知乎也是我: https://zhuanlan.zhihu.com/p/534843630
头疼了小一个月,终于弄出来了,弄完只想骂Unity傻叉,写的什么绿皮代码换了好几套姿势才反射到所有有效数据
最早是想看看有什么办法让原生的PSDImporter支持自动把图层当帧动画的帧来导入,这样可以在ps里直接按约定的帧率做成gif调到满意位置直接合并子图层丢进unity(或者其他帧动画软件输出gif导入ps存psd),工作流异常爽快。
然后搜了半天外网居然没人有方案,倒是在万能的知乎找到了一个唯一解:
https://zhuanlan.zhihu.com/p/158990037?utm_source=qq&ivk_sa=1024320u
但这位大佬的方案是把整个包拉出来魔改,核心修改其实不多,但要带着一大坨其实并没改过的代码,就想着能不能反射搞定,毕竟核心需求其实只是一个根据PSD内的位置设定Sprite的pivot使其自动对齐
然后分析了一下这位大佬的方案,感觉有点小问题:
1、需要额外分析PSD的参考线数据,不方便反射获得(没有中间数据,要自己从头反射更大堆保护区里的数据和方法来从头搞)
2、只允许两条参考线作为pivot定位其实限制ps使用方式了,也很蛋疼
我就想到可以假定第一个图层就是用来定位的,取其中心点位置作为pivot即可,最后生成的时候不带他就完了(此处是个大坑,但还好找到路了2333)。
代码在此,只需两个文件。BSD协议,随便用,只需要附带出处:
https://github.com/realamex/PSDImporterForFrames