玩法示例已配置

This commit is contained in:
2025-12-12 23:11:24 +08:00
parent b699d59310
commit 78838fe220
16 changed files with 867 additions and 95 deletions
@@ -93,9 +93,33 @@ namespace AibisDream.Framework
}
#if UNITY_EDITOR
public static bool GetAssetAddressableKey(UnityEngine.Object asset, out string addressableKey)
public static bool GetAssetAddressableKey<T>(T asset, out string addressableKey) where T : UnityEngine.Object
{
string path = AssetDatabase.GetAssetPath(asset);
// 如果是Sprite,并且是Multiple模式,则单独处理
if (asset is Sprite sprite && AssetImporter.GetAtPath(path) is TextureImporter importer)
{
if (importer.textureType == TextureImporterType.Sprite && importer.spriteImportMode == SpriteImportMode.Multiple)
{
if (TryGetAddressableKey(path, out var addressableKeyPrefix))
{
addressableKey = $"{addressableKeyPrefix}[{sprite.name}]";
return true;
}
else
{
addressableKey = addressableKeyPrefix;
return false;
}
}
}
// 其他情况正常输出
return TryGetAddressableKey(path, out addressableKey);
}
private static bool TryGetAddressableKey(string path, out string addressableKey)
{
// 获取其在Addressables里的路径
var settings = UnityEditor.AddressableAssets.AddressableAssetSettingsDefaultObject.Settings;
if (settings != null)
@@ -103,12 +127,11 @@ namespace AibisDream.Framework
var entry = settings.FindAssetEntry(AssetDatabase.AssetPathToGUID(path));
if (entry != null)
{
Debug.Log($"Addressable Key: {entry.address}");
addressableKey = entry.address;
return true;
}
}
Debug.Log($"资源{asset.name}不存在于Addressables中");
Debug.Log($"资源{path}不存在于Addressables中");
addressableKey = path;
return false;
}