unity psb文件生成UI
psb文件生成UI
- 1.先将psd文件存储为psb文件
- 2.在Unity中导入 2D PSD Importer 插件和psb文件
- 3.创建转换的代码,放入Editor文件夹
- 4.连续步骤
- 5.看这里
1.先将psd文件存储为psb文件



2.在Unity中导入 2D PSD Importer 插件和psb文件


3.创建转换的代码,放入Editor文件夹
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.UI;public class CreatePsbUI : EditorWindow {[MenuItem("Tools/创建PsbUI", false, 24)]private static void ShowWindow() {var window = GetWindow<CreatePsbUI>();window.titleContent = new GUIContent("创建PsbUI");window.Show();}private string preName;private void OnGUI(){preName = GUILayout.TextField(preName, GUILayout.Height(20));if (GUILayout.Button("生成UI") && !string.IsNullOrEmpty(preName)){RectTransform par = GameObject.Find(preName).AddComponent<RectTransform>();for (int i = 0; i < par.childCount; i++){RectTransform rect = par.GetChild(i).gameObject.AddComponent<RectTransform>();SpriteRenderer spriteRenderer=par.GetChild(i).GetComponent<SpriteRenderer>();par.GetChild(i).gameObject.AddComponent<Image>().sprite = spriteRenderer.sprite;GameObject.DestroyImmediate(spriteRenderer);rect.sizeDelta = rect.sizeDelta * 100;rect.anchoredPosition = rect.anchoredPosition * 100;}}}
}
4.连续步骤
1.将psb文件拖入面板中

2.创建它的原始预制体,这样才能改变它的组件


3.解压缩该预制体,这样才能在面板中修改组件

4.打开刚刚的代码编写的编辑器并输入预制体的名称并点击按钮

5.这样就能得到一个完整的UI了

5.看这里
上面的虽然可以用,但是图多的话也很麻烦。
所以有了新方法: 大佬的方法https://zhuanlan.zhihu.com/p/134136125
看大佬的方法我自己修改了点东西,在PSDImporter代码中OnProducePrefab方法最后一段添加
//修改为UIRectTransform par = root.AddComponent<RectTransform>();float x = 100;//图片的比例 决定生成的UI的大小,这个得自己调整,一般是100,可能也有其他的float y = 100;for (int i = 0; i < par.childCount; i++){RectTransform rect = par.GetChild(i).gameObject.AddComponent<RectTransform>();SpriteRenderer spriteRenderer = par.GetChild(i).GetComponent<SpriteRenderer>();par.GetChild(i).gameObject.AddComponent<Image>().sprite = spriteRenderer.sprite;GameObject.DestroyImmediate(spriteRenderer);rect.sizeDelta = new Vector2(rect.sizeDelta.x * x, rect.sizeDelta.y * y);rect.anchoredPosition =new Vector2(rect.anchoredPosition.x * x, rect.anchoredPosition.y * y);}return root;}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
