PSD to UGUI 以及其它
这个是很早前就有的插件了, 用起来确实非常爽, 不过对于更新(开发过程中的更新), 支持并不好, 先来看看它的逻辑 :
1. 从 PS 中导出图片资源和相关 Layout 信息, 以Json格式来的(需要把导出代码放到PS中)
2. 在 Unity 中使用 psd2ugui 就能生成 UI 了.
先说它生成UI的过程, 先把所有节点都创建出来, 并通过Json节点的HashCode作为一个软连接, 来保证唯一性(因为可能节点重名), 然后再根据层级设置各个UI的层级, 最后再添加相应脚本.
这样的过程是没有什么问题的, 并且由于Unity和PS都没有同名节点的限制, 所以在做更新的时候也是没有什么好办法的, 比如下面这样 :
同名节点会让你无法正确查找到想要的对象, 不能做更新......
这样的麻烦是什么呢? 比如一个脚本挂在Canvas上, 序列化引用了两个 Image 组件, 如果美术人员做了修改, 重新生成的Canvas需要重新挂一次脚本, 重新拖一次所有引用, 那就牵一发动全身了.
接下来需要对它进行修改, 让它能够增量更新, 其实方法会有很多种, 最常规的方法就是在原有基础上增量, 把已有的组件找出来, 按照层级该删的删, 该加的加, 不会影响原有的引用关系, 另外一个也可以直接修改序列化的YAML文件的方式来搞, 目前对 fileID 这些规则还不是很清楚, 反正也是一种方法吧......
现在很多设计流程都是把设计做了放到蓝湖上, 我也看到有 LanHuToIB 这样的工程, 应该是转换为 IOS 的 IB 界面布局相关的吧, 其实如果能获得蓝湖上的设计排版, 再下载来相应的图片, 如果把排版写成 psd2ugui 的 JSON 的格式, 就能用这个插件生成界面了...
现在这里的UI设计用的是Sketch, 可以通过在线的一个叫 Photopea 的工具转成 PSD, 然后继续转就成了UGUI了...
---------- 2021.06.09 ---------
把 LanHuToIB 拿来看了看, 主要代码还是靠 Python 的 Beautiful Soup4 解析的方式来爬网页, 不过这种体力活的过程基本是没戏的了, 我也把相关库装了 [Beautiful Soup4] [Requests] 两个库, 啥都解析不到, 那个工程的代码估计跟现在的节点/class名称都对应不上了吧, 或者是只对应他们的设计稿的结构的......
因为登录等问题我直接蓝湖网页保存到本地服务器, 然后从本地服务器获取的html...
没什么大意义