(client) chore:支持unity的方式加载资源,调整文件名与定义的分布

This commit is contained in:
m0_75251201
2025-08-07 14:20:58 +08:00
parent 6a222d82b2
commit 17d09a8435
93 changed files with 5267 additions and 90 deletions

View File

@ -89,32 +89,29 @@ namespace Managers
packRootSite[drawOrder.packID] = packagePath;
}
var rootPath = packRootSite[drawOrder.packID];
var folderPath = Path.Combine(rootPath, drawOrder.texturePath);
// 判断是否为 Unity 资源路径
bool isUnityResource = drawOrder.texturePath.StartsWith("res:", StringComparison.OrdinalIgnoreCase);
string rootPath = packRootSite[drawOrder.packID];
// 获取图像文件列表
try
if (isUnityResource)
{
var imagePath = Configs.ConfigProcessor.GetFilesByExtensions(folderPath,
new[] { "jpg", "jpeg", "png", "tga", "tif", "tiff", "psd", "bmp" });
// 移除 "res:" 前缀并适配 Unity 资源路径规则
string resourceFolder = drawOrder.texturePath.Substring(4).TrimStart('/').Replace('\\', '/');
foreach (var path in imagePath)
// 加载文件夹下的所有纹理资源
Texture2D[] textures = Resources.LoadAll<Texture2D>(resourceFolder);
if (textures == null || textures.Length == 0)
{
// 加载纹理
Texture2D image = null;
try
{
image = Configs.ConfigProcessor.LoadTextureByIO(path);
}
catch (Exception ex)
{
Debug.LogError($"Failed to load texture from path: {path}. Error: {ex.Message}");
continue;
}
Debug.LogWarning($"No textures found in Unity resource folder: {resourceFolder}");
continue;
}
foreach (var image in textures)
{
if (image == null)
{
Debug.LogWarning($"Texture loaded from path: {path} is null.");
Debug.LogWarning(
$"Texture loaded from Unity resource folder: {resourceFolder} is null.");
continue;
}
@ -128,20 +125,75 @@ namespace Managers
drawOrder.pixelsPerUnit
);
var name = Path.GetFileNameWithoutExtension(path);
var name = image.name;
// 插入纹理
InsertBodyTexture(drawOrder.packID, drawOrder.texturePath, name, spr);
}
catch (Exception ex)
{
Debug.LogError($"Failed to create sprite from texture: {path}. Error: {ex.Message}");
Debug.LogError(
$"Failed to create sprite from Unity resource: {image.name}. Error: {ex.Message}");
}
}
}
catch (Exception ex)
else
{
Debug.LogError($"Failed to retrieve files from folder: {folderPath}. Error: {ex.Message}");
// 文件系统路径处理
var folderPath = Path.Combine(rootPath, drawOrder.texturePath);
// 获取图像文件列表
try
{
var imagePath = Configs.ConfigProcessor.GetFilesByExtensions(folderPath,
new[] { "jpg", "jpeg", "png", "tga", "tif", "tiff", "psd", "bmp" });
foreach (var path in imagePath)
{
// 加载纹理
Texture2D image = null;
try
{
image = Configs.ConfigProcessor.LoadTextureByIO(path);
}
catch (Exception ex)
{
Debug.LogError($"Failed to load texture from path: {path}. Error: {ex.Message}");
continue;
}
if (image == null)
{
Debug.LogWarning($"Texture loaded from path: {path} is null.");
continue;
}
// 创建精灵
try
{
var spr = Sprite.Create(
image,
new Rect(0, 0, image.width, image.height),
new Vector2(0.5f, 0.5f), // 中心点
drawOrder.pixelsPerUnit
);
var name = Path.GetFileNameWithoutExtension(path);
// 插入纹理
InsertBodyTexture(drawOrder.packID, drawOrder.texturePath, name, spr);
}
catch (Exception ex)
{
Debug.LogError(
$"Failed to create sprite from texture: {path}. Error: {ex.Message}");
}
}
}
catch (Exception ex)
{
Debug.LogError($"Failed to retrieve files from folder: {folderPath}. Error: {ex.Message}");
}
}
}
}