首页 > 其他分享 >PSD转换UGUI的方案研究(1):介绍

PSD转换UGUI的方案研究(1):介绍

时间:2024-02-21 12:23:26浏览次数:29  
标签:方案 需要 转换 美术 psd 文件夹 PSD 界面 UGUI

在UI做好美术界面到程序拼界面这一流程中,美术切图加批注以及程序拼界面都是很占用时间的工作,为此我们想缩短这个时间来节省时间,所以想利用代码去实现这一步骤,借鉴其他的大佬提供的已有的方案上去修改为自己项目中可以用的方案(文末附上参考链接)。

介绍

项目已接近尾声,我们这套方案也在项目中得到了应用,优点很明显,但也有很多的不足的之处:

优点

  • 美术方面减去了切图批注的流程
  • 程序方面减去了拼界面的流程

总结来说,就是实现了从psd一键生成prefab预制体,生成即用,整个过程仅需3-10分钟,程序可以专注于业务逻辑。

缺点

  • 转换过程需要一定时间
  • 由于这套方案很依赖从命名上提取信息,所以需要很规范的命名,对美术来说,理解程序规范并不容易
  • 如果修改或更新效果图,把对应修改更新到prefab上,没有这个功能,暂不支持
  • 需要达到转换标准的psd,由于把很多图层转成了智能对象,美术的复用性并不是很好
  • 工具这部分代码是放在项目中,而实际游戏打包时不需要这部分代码,需要删掉来减小包的大小
  • 对psd插件的开发,有一定的难度,如果想对项目支持的更好,增加了工具对项目的耦合的同时,对工具的开发更新,也需要大量时间

还有很多的不足,此处列举的可能不够全面。

综上所述,本套方案实用性是有的,但缺点同样明显,在未来项目开发中,可以考虑类似的另一种方案,或者优化本方案,让它更成熟。

解决方案概览

使用方式

ps插件:PsdStandard

  1. 安装方式(PsdStandard.zip)
  2. 解压安装包到:C:\Program Files\Common Files\Adobe\CEP\extensions (如果没有对应目录请自行创建)
  3. 解压好后重新打开PS:image
  4. 界面如下:image

备注:
如果遇到以下未正确签署的提示,
解压压缩包(csxs.reg.zip)到任意目录,双击每个reg文件一次,导入到注册表:
image

Unity工具:Psd2UIForm Editor

  1. 打开工具:image
  2. 选择需要转换的的psd文件,点击Create Parse,等待生成,过程时长可能因psd大小而异
  3. 生成的Parse,以RechargeVip_psd_layers_parsed为例:image image

备注:
将TexturePacker放到路径D:TP文件夹下,确保TexturePacker.exe路径为
D:\TP\bin\TexturePacker.exe
如需要单独对某个文件夹打图集,如下图所示
其他任意位置的文件夹打图集同理,
图集导出位置可以修改,直接粘贴路径即可
image

Psd中各种组件的结构

阅读前须知:
除了图片的命名可以不分大小写,如:img_bg_xxx.img,c_xxx.img等等。
其他所有的文件、文件夹名,组件名(图层、编组名称)都以英文命名,
文件、文件夹名必须使用大驼峰法(Upper Camel Case),
例如:RechargeShop.psd,NewFeatures
每个单词首字母大写,单词之间不以空格断开或连接号(-)、底线(_)连结。
图层、编组名称不可以有空格,但可以在首字母大写的情况下加下划线,
例如:BtnAdd.btn,Btn_Add.btn都可。

Text(文本)

image
image

Button(按钮)

image
一般按钮上的文本不需要变化,所以用Text.txt就行。

Slider(进度条/滑动条)

image

InputField(输入框)

image

TableMenu(菜单/标签)

image

TableView(列表)

image

参考

psd插件参考:https://blog.cutterman.cn/2021/09/18/photoshop-plugin-types/

Unity工具参考:https://blog.csdn.net/final5788/article/details/130114695

标签:方案,需要,转换,美术,psd,文件夹,PSD,界面,UGUI
From: https://www.cnblogs.com/phopen/p/18024924

相关文章

  • js时间戳转换 带时区的格式
    JavaScript中可以使用Date.toLocaleString()函数将时间戳转换为包含时区信息的日期字符串。示例代码如下所示:1//获取当前时间戳(单位:毫秒)2vartimestamp=Date.now();34//创建一个新的Date对象并传入时间戳作为参数5vardateObj=newDate(timestamp);6......
  • 代码随想录算法训练营第二十三天|669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉
    669.修剪二叉搜索树 题目链接:669.修剪二叉搜索树-力扣(LeetCode)思路:本题原来想沿用上一次最后一道题的思路,用删除二叉搜索树特定值节点的方法来解决,但是会报错,找不出问题所在(在评论区也是一堆套用450代码报错的)。只能参考官网答案了。官网的方法没有用delete,但是思想是一直......
  • NFA到DFA的转换过程
    目录1.ε-NFA到NFA的转换2.NFA到DFA的转换子集构造法步骤:注意事项:总结从非确定有限自动机(NFA)到确定有限自动机(DFA)的转换过程是一个重要的计算理论概念。这个过程主要包括两个主要步骤:首先是将ε-NFA(带有ε-转换的NFA)转化为NFA,然后是将NFA确定化为DFA。下面详细介绍这两个步骤:......
  • 代码随想录算法训练营第二十三天 | 538.把二叉搜索树转换为累加树, 108.将有序数组转
     669.修剪二叉搜索树 已解答中等 相关标签相关企业 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low,high]中。修剪树 不应该 改变保留在树中的元素的相对结构(即,如果......
  • JavaSE的第六步 —— 运算符优先级问题以及类型转换
    一、运算符优先级一般来说不需要刻意去记这些运算符的优先级,当你对这些运算的先后顺序存在疑惑的时候,不需要多想什么,直接使用()将之括起来就好但大体上的优先级顺序还是需要了解一下的排在首位的就是括号运算符,无论什么时候,你都可以相信括号接下来的运算符就是①、[{一元运算......
  • VC++ 中 CT2A CA2T 两个宏进行字符串转换简单测试
    #include"afxwin.h"#include<iostream>usingnamespacestd;intmain(){CStringcs=_T("西游记");AfxMessageBox(_T("CString:")+cs);//CString转ACSIICT2Aa_str(cs);stringstd_str(a_str);......
  • JKS证书转换
    jks转换成p12格式keytool-importkeystore-srckeystored:\cert\server.jks-destkeystored:\cert\server.p12-srcstoretypejks-deststoretypepkcs12执行上述命令后,会提示输入三次密码,前两次是新的p12store文件的密码,第三次是源jksstore文件的密码。命令执行完毕后,......
  • Unity UGUI的DrawCall优化
    UnityUGUI是一种强大的用户界面设计工具,它可以帮助开发者快速创建各种界面元素,从按钮和文本到滑块和面板等。然而,在使用UGUI时,一个常见的性能瓶颈就是DrawCall过多导致的性能下降。在本文中,我们将深入探讨UGUI的DrawCall优化方法,并给出对应的代码实现。什么是DrawCall?在Unity......
  • 如何将OSGB格式的倾斜模型转换成3DTiles?
       通过以下方法可以将OSGB转换成3DTiles。 方法/步骤1、下载三维地图浏览器http://www.geosaas.com/download/map3dbrowser.exe,安装完成后桌面上出现”三维地图浏览器“图标。 2、双击桌面图标打开”三维地图浏览器“ 3、点击“倾斜模型”下拉菜单,然后点击“OSG......
  • HttpMessageCovnert请求信息统一转换
    /***请求信息统一转换处理**@authorweiye.li*/publicclassMallMappingJackson2HttpMessageConverterextendsMappingJackson2HttpMessageConverter{/***需要转换请求的路径,yml文件配置-@Bean中newMallMappingJackson2HttpMessageConverter(path)将......