优化导入

This commit is contained in:
Soviby 2024-11-29 01:06:27 +08:00
parent 125df0ba8a
commit d9030c8e89
5 changed files with 57 additions and 39 deletions

View File

@ -7,7 +7,7 @@ namespace UguiToolkit.Editor
public const string SettingFilePath = WorkspaceDirPath + "/setting.asset"; public const string SettingFilePath = WorkspaceDirPath + "/setting.asset";
public const string CacheFilePath = WorkspaceDirPath + "/cache.asset"; public const string CacheFilePath = WorkspaceDirPath + "/cache.asset";
public const string RotScaleInfoFilePath = "Temp/result_rot_scale.json"; public const string RotScaleInfoFilePath = "Temp/result_rot_scale.json";
public const string RotScaleInfoToolFilePath = "Packages/com.soviby.unity.ui.ugui-toolkit/.tools/result_rot_scale/main.exe"; public const string RotScaleInfoToolFilePath = "Packages/com.txcombo.c1.ugui-toolkit/.tools/result_rot_scale/main.exe";
} }
} }

View File

@ -16,12 +16,14 @@ namespace UguiToolkit.Editor
var rotScaleInfoToolFilePath = Path.GetFullPath(EditorConst.RotScaleInfoToolFilePath); var rotScaleInfoToolFilePath = Path.GetFullPath(EditorConst.RotScaleInfoToolFilePath);
if (File.Exists(rotScaleInfoFilePath)) File.Delete(rotScaleInfoFilePath); if (File.Exists(rotScaleInfoFilePath)) File.Delete(rotScaleInfoFilePath);
_ = RunCmdAsync(string.Format("{0} -src {1} -target {2} -distance_difference {3} -output_path {4}", var cmd = string.Format("{0} -src {1} -target {2} -distance_difference {3} -output_path {4}",
rotScaleInfoToolFilePath, rotScaleInfoToolFilePath,
Path.GetFullPath(srcImgDirPath), Path.GetFullPath(srcImgDirPath),
Path.GetFullPath(targetImgDirPath), Path.GetFullPath(targetImgDirPath),
distanceDifference, distanceDifference,
Path.GetFullPath(rotScaleInfoFilePath)), (output, error) => Path.GetFullPath(rotScaleInfoFilePath));
Debug.Log("cmd: " + cmd);
_ = RunCmdAsync(cmd, (output, error) =>
{ {
Debug.Log(output); Debug.Log(output);
if (!File.Exists(rotScaleInfoFilePath)) if (!File.Exists(rotScaleInfoFilePath))
@ -50,6 +52,8 @@ namespace UguiToolkit.Editor
p.StartInfo.CreateNoWindow = true; p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true; p.StartInfo.RedirectStandardError = true;
p.StartInfo.StandardOutputEncoding = System.Text.Encoding.UTF8;
p.StartInfo.StandardErrorEncoding = System.Text.Encoding.UTF8;
p.Start(); p.Start();
var output = p.StandardOutput.ReadToEnd(); var output = p.StandardOutput.ReadToEnd();
@ -70,6 +74,8 @@ namespace UguiToolkit.Editor
p.StartInfo.CreateNoWindow = true; p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true; p.StartInfo.RedirectStandardError = true;
p.StartInfo.StandardOutputEncoding = System.Text.Encoding.UTF8;
p.StartInfo.StandardErrorEncoding = System.Text.Encoding.UTF8;
p.Start(); p.Start();

View File

@ -124,13 +124,13 @@ namespace UguiToolkit.Editor
{ {
if (m_checkImgPaths == null) m_checkImgPaths = new HashSet<string>(); if (m_checkImgPaths == null) m_checkImgPaths = new HashSet<string>();
var images = m_stageManager.PrefabContentsRoot.GetComponentsInChildren<UnityEngine.UI.Image>(); //var images = m_stageManager.PrefabContentsRoot.GetComponentsInChildren<UnityEngine.UI.Image>();
foreach (var image in images) //foreach (var image in images)
{ //{
if (image.sprite == null) continue; // if (image.sprite == null) continue;
var srcImgPath = AssetDatabase.GetAssetPath(image.sprite); // var srcImgPath = AssetDatabase.GetAssetPath(image.sprite);
m_checkImgPaths.Add(srcImgPath); // m_checkImgPaths.Add(srcImgPath);
} //}
} }
private void UpdatePanelCache(string srcImgDirPath, string targetImgDirPath) private void UpdatePanelCache(string srcImgDirPath, string targetImgDirPath)

View File

@ -79,8 +79,8 @@ namespace UguiToolkit.Editor
[Serializable] [Serializable]
public class PanelCache public class PanelCache
{ {
[LabelText("源图片文件夹路径"), FolderPath] //[LabelText("源图片文件夹路径"), FolderPath]
public string srcImgDirPath; //public string srcImgDirPath;
[LabelText("目标图片信息文件(psd导出)"), FolderPath] [LabelText("目标图片信息文件(psd导出)"), FolderPath]
public string layoutInfoFilePath; // Sample.layout.txt public string layoutInfoFilePath; // Sample.layout.txt
[LabelText("目标图片文件夹路径")] [LabelText("目标图片文件夹路径")]
@ -111,9 +111,10 @@ namespace UguiToolkit.Editor
private string m_targetImgDirPath; private string m_targetImgDirPath;
private PanelCache() { } private PanelCache() { }
public PanelCache(string srcImgDirPath, string layoutInfoFilePath) // public PanelCache(string srcImgDirPath, string layoutInfoFilePath)
public PanelCache(string layoutInfoFilePath)
{ {
this.srcImgDirPath = srcImgDirPath; // this.srcImgDirPath = srcImgDirPath;
this.layoutInfoFilePath = layoutInfoFilePath; this.layoutInfoFilePath = layoutInfoFilePath;
this.m_targetImgDirPath = GetTargetImgDirPath(layoutInfoFilePath); this.m_targetImgDirPath = GetTargetImgDirPath(layoutInfoFilePath);

View File

@ -14,8 +14,8 @@ namespace UguiToolkit.Editor.Windows
public class PanelCacheWindow : BaseWindow<PanelCacheWindow> public class PanelCacheWindow : BaseWindow<PanelCacheWindow>
{ {
[LabelText("源图片文件夹路径"), FolderPath, SerializeField] //[LabelText("源图片文件夹路径"), FolderPath, SerializeField]
private string m_srcImgDirPath; //private string m_srcImgDirPath;
[LabelText("目标图片信息文件(psd导出)"), Sirenix.OdinInspector.FilePath(Extensions = "layout.txt"), SerializeField] [LabelText("目标图片信息文件(psd导出)"), Sirenix.OdinInspector.FilePath(Extensions = "layout.txt"), SerializeField]
private string m_layoutInfoFilePath; private string m_layoutInfoFilePath;
@ -32,34 +32,45 @@ namespace UguiToolkit.Editor.Windows
// 打开编辑界面 // 打开编辑界面
EditWindow.ShowWindow(null); EditWindow.ShowWindow(null);
if (m_panelCache == null) //if (m_panelCache == null)
{ //{
var targetImgDirPath = PanelCache.GetTargetImgDirPath(m_layoutInfoFilePath); // var targetImgDirPath = PanelCache.GetTargetImgDirPath(m_layoutInfoFilePath);
float distanceDifference = GlobalManager.Instance.setting.distanceDifference; // float distanceDifference = GlobalManager.Instance.setting.distanceDifference;
CacheScriptObject.CalcRotScaleInfos(m_srcImgDirPath, targetImgDirPath, distanceDifference, (rotScaleInfos) => // CacheScriptObject.CalcRotScaleInfos(m_srcImgDirPath, targetImgDirPath, distanceDifference, (rotScaleInfos) =>
{ // {
if (!stageManager) return; // if (!stageManager) return;
var panelCache = new PanelCache(m_srcImgDirPath, m_layoutInfoFilePath); // var panelCache = new PanelCache(m_srcImgDirPath, m_layoutInfoFilePath);
panelCache.rotScaleInfos = rotScaleInfos; // panelCache.rotScaleInfos = rotScaleInfos;
panelCache.layoutInfo = CacheScriptObject.PaserLayout(m_layoutInfoFilePath, targetImgDirPath); // panelCache.layoutInfo = CacheScriptObject.PaserLayout(m_layoutInfoFilePath, targetImgDirPath);
// 保存缓存 // // 保存缓存
GlobalManager.Instance.SaveCache(m_prefab, panelCache); // GlobalManager.Instance.SaveCache(m_prefab, panelCache);
var entityManager = stageManager.CreateSubManager<EntityManager>(); // var entityManager = stageManager.CreateSubManager<EntityManager>();
entityManager.InitAllEntity(panelCache); // entityManager.InitAllEntity(panelCache);
}); // });
CloseWindow(); // CloseWindow();
} //}
else { //else {
var entityManager = stageManager.CreateSubManager<EntityManager>(); // var entityManager = stageManager.CreateSubManager<EntityManager>();
entityManager.InitAllEntity(m_panelCache); // entityManager.InitAllEntity(m_panelCache);
CloseWindow(); // CloseWindow();
} //}
var targetImgDirPath = PanelCache.GetTargetImgDirPath(m_layoutInfoFilePath);
var panelCache = new PanelCache(m_layoutInfoFilePath);
panelCache.layoutInfo = CacheScriptObject.PaserLayout(m_layoutInfoFilePath, targetImgDirPath);
// 保存缓存
GlobalManager.Instance.SaveCache(m_prefab, panelCache);
var entityManager = stageManager.CreateSubManager<EntityManager>();
entityManager.InitAllEntity(panelCache);
CloseWindow();
} }
public override string GettitleContent() public override string GettitleContent()
@ -76,7 +87,7 @@ namespace UguiToolkit.Editor.Windows
var cache = GlobalManager.Instance.cache; var cache = GlobalManager.Instance.cache;
if (cache.panelCaches.TryGetValue(m_prefab, out m_panelCache)) if (cache.panelCaches.TryGetValue(m_prefab, out m_panelCache))
{ {
m_srcImgDirPath = m_panelCache.srcImgDirPath; // m_srcImgDirPath = m_panelCache.srcImgDirPath;
m_layoutInfoFilePath = m_panelCache.layoutInfoFilePath; m_layoutInfoFilePath = m_panelCache.layoutInfoFilePath;
} }
} }