优化导入

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 CacheFilePath = WorkspaceDirPath + "/cache.asset";
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);
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,
Path.GetFullPath(srcImgDirPath),
Path.GetFullPath(targetImgDirPath),
distanceDifference,
Path.GetFullPath(rotScaleInfoFilePath)), (output, error) =>
Path.GetFullPath(rotScaleInfoFilePath));
Debug.Log("cmd: " + cmd);
_ = RunCmdAsync(cmd, (output, error) =>
{
Debug.Log(output);
if (!File.Exists(rotScaleInfoFilePath))
@ -50,6 +52,8 @@ namespace UguiToolkit.Editor
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.StandardOutputEncoding = System.Text.Encoding.UTF8;
p.StartInfo.StandardErrorEncoding = System.Text.Encoding.UTF8;
p.Start();
var output = p.StandardOutput.ReadToEnd();
@ -70,6 +74,8 @@ namespace UguiToolkit.Editor
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.StandardOutputEncoding = System.Text.Encoding.UTF8;
p.StartInfo.StandardErrorEncoding = System.Text.Encoding.UTF8;
p.Start();

View File

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

View File

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

View File

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