Ver.0.3.0.33

This commit is contained in:
2025-07-08 08:32:46 +00:00
parent 99f4dd67c2
commit 0ad5e29917
6831 changed files with 695623 additions and 234455 deletions
@@ -1,6 +1,8 @@
using System;
using System.Linq;
using UnityEditor;
using UnityEngine;
using UnityEngine.AddressableAssets;
namespace AibisDream.Framework
{
@@ -10,7 +12,7 @@ namespace AibisDream.Framework
{
#if UNITY_EDITOR
if (!sprite) return "";
// 先读Psd的路径
string psdPath = AssetDatabase.GetAssetPath(sprite);
var psdResPath = GetResourcePath(psdPath);
@@ -25,49 +27,41 @@ namespace AibisDream.Framework
// 提取文件名(不包括扩展名)
var purePath = psdResPath.Substring(0, lastDotIndex);
// 添加后缀
return purePath + "/" + sprite.name;
#else
return null;
#endif
}
private static string GetResourcePath(string absolutePath)
{
const string resourcesFolderName = "Resources/";
int index = absolutePath.IndexOf(resourcesFolderName, StringComparison.Ordinal);
var index = absolutePath.IndexOf(resourcesFolderName, StringComparison.Ordinal);
if (index >= 0)
{
// 获取 "Resources/" 之后的部分
return absolutePath.Substring(index + resourcesFolderName.Length);
}
else
{
return absolutePath;
}
return index >= 0 ? absolutePath[(index + resourcesFolderName.Length)..] : absolutePath;
}
public static Sprite LoadSpriteFromPsd(string path)
{
int lastIndex = path.LastIndexOf('/');
string spriteName = path.Substring(lastIndex + 1);
string resPath = path.Substring(0, lastIndex);
string spriteName = path[(lastIndex + 1)..];
string resPath = path[..lastIndex];
// 加载
var sprites = Resources.LoadAll<Sprite>(resPath);
foreach (var sprite in sprites)
{
if (sprite.name == spriteName)
{
return sprite;
}
}
return sprites.FirstOrDefault(sprite => sprite.name == spriteName);
}
return null;
public static T LoadAssetSync<T>(string key) where T : UnityEngine.Object
{
var operation = Addressables.LoadAssetAsync<T>(key);
operation.WaitForCompletion();
return operation.Result;
}
}
}