mirror of https://github.com/tuyoogame/YooAsset
update runtime code
1. 移除了InitializeParameters.LocationToLower参数 2. 资源收集界面增加了LocationToLower选项 3. 资源收集界面增加了IncludeAssetGUID选项 4. 资源清单版本升级了 5. 新增了ResourcePackage.GetAssetInfoByGUID()方法pull/122/head
parent
43db19c257
commit
3bb3d4382c
|
@ -1,8 +0,0 @@
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace YooAsset
|
|
||||||
{
|
|
||||||
public class AssetReference
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 1534f1a1b207ad542bf1fc73da8b4316
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -27,12 +27,6 @@ namespace YooAsset
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class InitializeParameters
|
public abstract class InitializeParameters
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// 资源定位地址大小写不敏感
|
|
||||||
/// 注意:默认值为False
|
|
||||||
/// </summary>
|
|
||||||
public bool LocationToLower = false;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 文件解密服务接口
|
/// 文件解密服务接口
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -36,6 +36,8 @@ namespace YooAsset
|
||||||
|
|
||||||
// 写入文件头信息
|
// 写入文件头信息
|
||||||
buffer.WriteBool(manifest.EnableAddressable);
|
buffer.WriteBool(manifest.EnableAddressable);
|
||||||
|
buffer.WriteBool(manifest.LocationToLower);
|
||||||
|
buffer.WriteBool(manifest.IncludeAssetGUID);
|
||||||
buffer.WriteInt32(manifest.OutputNameStyle);
|
buffer.WriteInt32(manifest.OutputNameStyle);
|
||||||
buffer.WriteUTF8(manifest.PackageName);
|
buffer.WriteUTF8(manifest.PackageName);
|
||||||
buffer.WriteUTF8(manifest.PackageVersion);
|
buffer.WriteUTF8(manifest.PackageVersion);
|
||||||
|
@ -47,6 +49,7 @@ namespace YooAsset
|
||||||
var packageAsset = manifest.AssetList[i];
|
var packageAsset = manifest.AssetList[i];
|
||||||
buffer.WriteUTF8(packageAsset.Address);
|
buffer.WriteUTF8(packageAsset.Address);
|
||||||
buffer.WriteUTF8(packageAsset.AssetPath);
|
buffer.WriteUTF8(packageAsset.AssetPath);
|
||||||
|
buffer.WriteUTF8(packageAsset.AssetGUID);
|
||||||
buffer.WriteUTF8Array(packageAsset.AssetTags);
|
buffer.WriteUTF8Array(packageAsset.AssetTags);
|
||||||
buffer.WriteInt32(packageAsset.BundleID);
|
buffer.WriteInt32(packageAsset.BundleID);
|
||||||
buffer.WriteInt32Array(packageAsset.DependIDs);
|
buffer.WriteInt32Array(packageAsset.DependIDs);
|
||||||
|
@ -104,10 +107,16 @@ namespace YooAsset
|
||||||
// 读取文件头信息
|
// 读取文件头信息
|
||||||
manifest.FileVersion = fileVersion;
|
manifest.FileVersion = fileVersion;
|
||||||
manifest.EnableAddressable = buffer.ReadBool();
|
manifest.EnableAddressable = buffer.ReadBool();
|
||||||
|
manifest.LocationToLower = buffer.ReadBool();
|
||||||
|
manifest.IncludeAssetGUID = buffer.ReadBool();
|
||||||
manifest.OutputNameStyle = buffer.ReadInt32();
|
manifest.OutputNameStyle = buffer.ReadInt32();
|
||||||
manifest.PackageName = buffer.ReadUTF8();
|
manifest.PackageName = buffer.ReadUTF8();
|
||||||
manifest.PackageVersion = buffer.ReadUTF8();
|
manifest.PackageVersion = buffer.ReadUTF8();
|
||||||
|
|
||||||
|
// 检测配置
|
||||||
|
if (manifest.EnableAddressable && manifest.LocationToLower)
|
||||||
|
throw new Exception("Addressable not support location to lower !");
|
||||||
|
|
||||||
// 读取资源列表
|
// 读取资源列表
|
||||||
int packageAssetCount = buffer.ReadInt32();
|
int packageAssetCount = buffer.ReadInt32();
|
||||||
manifest.AssetList = new List<PackageAsset>(packageAssetCount);
|
manifest.AssetList = new List<PackageAsset>(packageAssetCount);
|
||||||
|
@ -116,6 +125,7 @@ namespace YooAsset
|
||||||
var packageAsset = new PackageAsset();
|
var packageAsset = new PackageAsset();
|
||||||
packageAsset.Address = buffer.ReadUTF8();
|
packageAsset.Address = buffer.ReadUTF8();
|
||||||
packageAsset.AssetPath = buffer.ReadUTF8();
|
packageAsset.AssetPath = buffer.ReadUTF8();
|
||||||
|
packageAsset.AssetGUID = buffer.ReadUTF8();
|
||||||
packageAsset.AssetTags = buffer.ReadUTF8Array();
|
packageAsset.AssetTags = buffer.ReadUTF8Array();
|
||||||
packageAsset.BundleID = buffer.ReadInt32();
|
packageAsset.BundleID = buffer.ReadInt32();
|
||||||
packageAsset.DependIDs = buffer.ReadInt32Array();
|
packageAsset.DependIDs = buffer.ReadInt32Array();
|
||||||
|
@ -140,7 +150,7 @@ namespace YooAsset
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BundleDic
|
// 填充BundleDic
|
||||||
manifest.BundleDic = new Dictionary<string, PackageBundle>(manifest.BundleList.Count);
|
manifest.BundleDic = new Dictionary<string, PackageBundle>(manifest.BundleList.Count);
|
||||||
foreach (var packageBundle in manifest.BundleList)
|
foreach (var packageBundle in manifest.BundleList)
|
||||||
{
|
{
|
||||||
|
@ -148,7 +158,7 @@ namespace YooAsset
|
||||||
manifest.BundleDic.Add(packageBundle.BundleName, packageBundle);
|
manifest.BundleDic.Add(packageBundle.BundleName, packageBundle);
|
||||||
}
|
}
|
||||||
|
|
||||||
// AssetDic
|
// 填充AssetDic
|
||||||
manifest.AssetDic = new Dictionary<string, PackageAsset>(manifest.AssetList.Count);
|
manifest.AssetDic = new Dictionary<string, PackageAsset>(manifest.AssetList.Count);
|
||||||
foreach (var packageAsset in manifest.AssetList)
|
foreach (var packageAsset in manifest.AssetList)
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace YooAsset
|
||||||
DeserializeBundleList,
|
DeserializeBundleList,
|
||||||
Done,
|
Done,
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly BufferReader _buffer;
|
private readonly BufferReader _buffer;
|
||||||
private int _packageAssetCount;
|
private int _packageAssetCount;
|
||||||
private int _packageBundleCount;
|
private int _packageBundleCount;
|
||||||
|
@ -77,10 +77,16 @@ namespace YooAsset
|
||||||
Manifest = new PackageManifest();
|
Manifest = new PackageManifest();
|
||||||
Manifest.FileVersion = fileVersion;
|
Manifest.FileVersion = fileVersion;
|
||||||
Manifest.EnableAddressable = _buffer.ReadBool();
|
Manifest.EnableAddressable = _buffer.ReadBool();
|
||||||
|
Manifest.LocationToLower = _buffer.ReadBool();
|
||||||
|
Manifest.IncludeAssetGUID = _buffer.ReadBool();
|
||||||
Manifest.OutputNameStyle = _buffer.ReadInt32();
|
Manifest.OutputNameStyle = _buffer.ReadInt32();
|
||||||
Manifest.PackageName = _buffer.ReadUTF8();
|
Manifest.PackageName = _buffer.ReadUTF8();
|
||||||
Manifest.PackageVersion = _buffer.ReadUTF8();
|
Manifest.PackageVersion = _buffer.ReadUTF8();
|
||||||
|
|
||||||
|
// 检测配置
|
||||||
|
if (Manifest.EnableAddressable && Manifest.LocationToLower)
|
||||||
|
throw new System.Exception("Addressable not support location to lower !");
|
||||||
|
|
||||||
_steps = ESteps.PrepareAssetList;
|
_steps = ESteps.PrepareAssetList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,6 +95,17 @@ namespace YooAsset
|
||||||
_packageAssetCount = _buffer.ReadInt32();
|
_packageAssetCount = _buffer.ReadInt32();
|
||||||
Manifest.AssetList = new List<PackageAsset>(_packageAssetCount);
|
Manifest.AssetList = new List<PackageAsset>(_packageAssetCount);
|
||||||
Manifest.AssetDic = new Dictionary<string, PackageAsset>(_packageAssetCount);
|
Manifest.AssetDic = new Dictionary<string, PackageAsset>(_packageAssetCount);
|
||||||
|
|
||||||
|
if (Manifest.EnableAddressable)
|
||||||
|
Manifest.AssetPathMapping1 = new Dictionary<string, string>(_packageAssetCount);
|
||||||
|
else
|
||||||
|
Manifest.AssetPathMapping1 = new Dictionary<string, string>(_packageAssetCount * 2);
|
||||||
|
|
||||||
|
if (Manifest.IncludeAssetGUID)
|
||||||
|
Manifest.AssetPathMapping2 = new Dictionary<string, string>(_packageAssetCount);
|
||||||
|
else
|
||||||
|
Manifest.AssetPathMapping2 = new Dictionary<string, string>();
|
||||||
|
|
||||||
_progressTotalValue = _packageAssetCount;
|
_progressTotalValue = _packageAssetCount;
|
||||||
_steps = ESteps.DeserializeAssetList;
|
_steps = ESteps.DeserializeAssetList;
|
||||||
}
|
}
|
||||||
|
@ -99,6 +116,7 @@ namespace YooAsset
|
||||||
var packageAsset = new PackageAsset();
|
var packageAsset = new PackageAsset();
|
||||||
packageAsset.Address = _buffer.ReadUTF8();
|
packageAsset.Address = _buffer.ReadUTF8();
|
||||||
packageAsset.AssetPath = _buffer.ReadUTF8();
|
packageAsset.AssetPath = _buffer.ReadUTF8();
|
||||||
|
packageAsset.AssetGUID = _buffer.ReadUTF8();
|
||||||
packageAsset.AssetTags = _buffer.ReadUTF8Array();
|
packageAsset.AssetTags = _buffer.ReadUTF8Array();
|
||||||
packageAsset.BundleID = _buffer.ReadInt32();
|
packageAsset.BundleID = _buffer.ReadInt32();
|
||||||
packageAsset.DependIDs = _buffer.ReadInt32Array();
|
packageAsset.DependIDs = _buffer.ReadInt32Array();
|
||||||
|
@ -111,6 +129,47 @@ namespace YooAsset
|
||||||
else
|
else
|
||||||
Manifest.AssetDic.Add(assetPath, packageAsset);
|
Manifest.AssetDic.Add(assetPath, packageAsset);
|
||||||
|
|
||||||
|
// 填充AssetPathMapping1
|
||||||
|
if (Manifest.EnableAddressable)
|
||||||
|
{
|
||||||
|
string location = packageAsset.Address;
|
||||||
|
if (Manifest.AssetPathMapping1.ContainsKey(location))
|
||||||
|
throw new System.Exception($"Address have existed : {location}");
|
||||||
|
else
|
||||||
|
Manifest.AssetPathMapping1.Add(location, packageAsset.AssetPath);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string location = packageAsset.AssetPath;
|
||||||
|
if (Manifest.LocationToLower)
|
||||||
|
location = location.ToLower();
|
||||||
|
|
||||||
|
// 添加原生路径的映射
|
||||||
|
if (Manifest.AssetPathMapping1.ContainsKey(location))
|
||||||
|
throw new System.Exception($"AssetPath have existed : {location}");
|
||||||
|
else
|
||||||
|
Manifest.AssetPathMapping1.Add(location, packageAsset.AssetPath);
|
||||||
|
|
||||||
|
// 添加无后缀名路径的映射
|
||||||
|
if (Path.HasExtension(location))
|
||||||
|
{
|
||||||
|
string locationWithoutExtension = PathUtility.RemoveExtension(location);
|
||||||
|
if (Manifest.AssetPathMapping1.ContainsKey(locationWithoutExtension))
|
||||||
|
YooLogger.Warning($"AssetPath have existed : {locationWithoutExtension}");
|
||||||
|
else
|
||||||
|
Manifest.AssetPathMapping1.Add(locationWithoutExtension, packageAsset.AssetPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 填充AssetPathMapping2
|
||||||
|
if (Manifest.IncludeAssetGUID)
|
||||||
|
{
|
||||||
|
if (Manifest.AssetPathMapping2.ContainsKey(packageAsset.AssetGUID))
|
||||||
|
throw new System.Exception($"AssetGUID have existed : {packageAsset.AssetGUID}");
|
||||||
|
else
|
||||||
|
Manifest.AssetPathMapping2.Add(packageAsset.AssetGUID, packageAsset.AssetPath);
|
||||||
|
}
|
||||||
|
|
||||||
_packageAssetCount--;
|
_packageAssetCount--;
|
||||||
Progress = 1f - _packageAssetCount / _progressTotalValue;
|
Progress = 1f - _packageAssetCount / _progressTotalValue;
|
||||||
if (OperationSystem.IsBusy)
|
if (OperationSystem.IsBusy)
|
||||||
|
|
|
@ -16,6 +16,11 @@ namespace YooAsset
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string AssetPath;
|
public string AssetPath;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 资源GUID
|
||||||
|
/// </summary>
|
||||||
|
public string AssetGUID;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 资源的分类标签
|
/// 资源的分类标签
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -22,6 +22,16 @@ namespace YooAsset
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool EnableAddressable;
|
public bool EnableAddressable;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 资源定位地址大小写不敏感
|
||||||
|
/// </summary>
|
||||||
|
public bool LocationToLower;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 包含资源GUID数据
|
||||||
|
/// </summary>
|
||||||
|
public bool IncludeAssetGUID;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 文件名称样式
|
/// 文件名称样式
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -61,93 +71,17 @@ namespace YooAsset
|
||||||
public Dictionary<string, PackageAsset> AssetDic;
|
public Dictionary<string, PackageAsset> AssetDic;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 资源路径映射集合
|
/// 资源路径映射集合(提供Location获取AssetPath)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[NonSerialized]
|
[NonSerialized]
|
||||||
public Dictionary<string, string> AssetPathMapping;
|
public Dictionary<string, string> AssetPathMapping1;
|
||||||
|
|
||||||
// 资源路径映射相关
|
|
||||||
private bool _isInitAssetPathMapping = false;
|
|
||||||
private bool _locationToLower = false;
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 初始化资源路径映射
|
/// 资源路径映射集合(提供AssetGUID获取AssetPath)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void InitAssetPathMapping(bool locationToLower)
|
[NonSerialized]
|
||||||
{
|
public Dictionary<string, string> AssetPathMapping2;
|
||||||
if (_isInitAssetPathMapping)
|
|
||||||
return;
|
|
||||||
_isInitAssetPathMapping = true;
|
|
||||||
|
|
||||||
if (EnableAddressable)
|
|
||||||
{
|
|
||||||
if (locationToLower)
|
|
||||||
YooLogger.Error("Addressable not support location to lower !");
|
|
||||||
|
|
||||||
AssetPathMapping = new Dictionary<string, string>(AssetList.Count);
|
|
||||||
foreach (var packageAsset in AssetList)
|
|
||||||
{
|
|
||||||
string location = packageAsset.Address;
|
|
||||||
if (AssetPathMapping.ContainsKey(location))
|
|
||||||
throw new Exception($"Address have existed : {location}");
|
|
||||||
else
|
|
||||||
AssetPathMapping.Add(location, packageAsset.AssetPath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_locationToLower = locationToLower;
|
|
||||||
AssetPathMapping = new Dictionary<string, string>(AssetList.Count * 2);
|
|
||||||
foreach (var packageAsset in AssetList)
|
|
||||||
{
|
|
||||||
string location = packageAsset.AssetPath;
|
|
||||||
if (locationToLower)
|
|
||||||
location = location.ToLower();
|
|
||||||
|
|
||||||
// 添加原生路径的映射
|
|
||||||
if (AssetPathMapping.ContainsKey(location))
|
|
||||||
throw new Exception($"AssetPath have existed : {location}");
|
|
||||||
else
|
|
||||||
AssetPathMapping.Add(location, packageAsset.AssetPath);
|
|
||||||
|
|
||||||
// 添加无后缀名路径的映射
|
|
||||||
if (Path.HasExtension(location))
|
|
||||||
{
|
|
||||||
string locationWithoutExtension = PathUtility.RemoveExtension(location);
|
|
||||||
if (AssetPathMapping.ContainsKey(locationWithoutExtension))
|
|
||||||
YooLogger.Warning($"AssetPath have existed : {locationWithoutExtension}");
|
|
||||||
else
|
|
||||||
AssetPathMapping.Add(locationWithoutExtension, packageAsset.AssetPath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 映射为资源路径
|
|
||||||
/// </summary>
|
|
||||||
public string MappingToAssetPath(string location)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(location))
|
|
||||||
{
|
|
||||||
YooLogger.Error("Failed to mapping location to asset path, The location is null or empty.");
|
|
||||||
return string.Empty;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_locationToLower)
|
|
||||||
location = location.ToLower();
|
|
||||||
|
|
||||||
if (AssetPathMapping.TryGetValue(location, out string assetPath))
|
|
||||||
{
|
|
||||||
return assetPath;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
YooLogger.Warning($"Failed to mapping location to asset path : {location}");
|
|
||||||
return string.Empty;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 尝试映射为资源路径
|
/// 尝试映射为资源路径
|
||||||
|
@ -157,10 +91,10 @@ namespace YooAsset
|
||||||
if (string.IsNullOrEmpty(location))
|
if (string.IsNullOrEmpty(location))
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
|
|
||||||
if (_locationToLower)
|
if (LocationToLower)
|
||||||
location = location.ToLower();
|
location = location.ToLower();
|
||||||
|
|
||||||
if (AssetPathMapping.TryGetValue(location, out string assetPath))
|
if (AssetPathMapping1.TryGetValue(location, out string assetPath))
|
||||||
return assetPath;
|
return assetPath;
|
||||||
else
|
else
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
|
@ -283,14 +217,14 @@ namespace YooAsset
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 资源定位地址转换为资源信息类,失败时内部会发出错误日志。
|
/// 资源定位地址转换为资源信息。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>如果转换失败会返回一个无效的资源信息类</returns>
|
/// <returns>如果转换失败会返回一个无效的资源信息类</returns>
|
||||||
public AssetInfo ConvertLocationToAssetInfo(string location, System.Type assetType)
|
public AssetInfo ConvertLocationToAssetInfo(string location, System.Type assetType)
|
||||||
{
|
{
|
||||||
DebugCheckLocation(location);
|
DebugCheckLocation(location);
|
||||||
|
|
||||||
string assetPath = MappingToAssetPath(location);
|
string assetPath = ConvertLocationToAssetInfoMapping(location);
|
||||||
if (TryGetPackageAsset(assetPath, out PackageAsset packageAsset))
|
if (TryGetPackageAsset(assetPath, out PackageAsset packageAsset))
|
||||||
{
|
{
|
||||||
AssetInfo assetInfo = new AssetInfo(packageAsset, assetType);
|
AssetInfo assetInfo = new AssetInfo(packageAsset, assetType);
|
||||||
|
@ -307,6 +241,76 @@ namespace YooAsset
|
||||||
return assetInfo;
|
return assetInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private string ConvertLocationToAssetInfoMapping(string location)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(location))
|
||||||
|
{
|
||||||
|
YooLogger.Error("Failed to mapping location to asset path, The location is null or empty.");
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (LocationToLower)
|
||||||
|
location = location.ToLower();
|
||||||
|
|
||||||
|
if (AssetPathMapping1.TryGetValue(location, out string assetPath))
|
||||||
|
{
|
||||||
|
return assetPath;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
YooLogger.Warning($"Failed to mapping location to asset path : {location}");
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 资源GUID转换为资源信息。
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>如果转换失败会返回一个无效的资源信息类</returns>
|
||||||
|
public AssetInfo ConvertAssetGUIDToAssetInfo(string assetGUID, System.Type assetType)
|
||||||
|
{
|
||||||
|
if (IncludeAssetGUID == false)
|
||||||
|
{
|
||||||
|
YooLogger.Warning("Package manifest not include asset guid ! Please check asset bundle collector settings.");
|
||||||
|
AssetInfo assetInfo = new AssetInfo("AssetGUID data is empty !");
|
||||||
|
return assetInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
string assetPath = ConvertAssetGUIDToAssetInfoMapping(assetGUID);
|
||||||
|
if (TryGetPackageAsset(assetPath, out PackageAsset packageAsset))
|
||||||
|
{
|
||||||
|
AssetInfo assetInfo = new AssetInfo(packageAsset, assetType);
|
||||||
|
return assetInfo;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string error;
|
||||||
|
if (string.IsNullOrEmpty(assetGUID))
|
||||||
|
error = $"The assetGUID is null or empty !";
|
||||||
|
else
|
||||||
|
error = $"The assetGUID is invalid : {assetGUID}";
|
||||||
|
AssetInfo assetInfo = new AssetInfo(error);
|
||||||
|
return assetInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private string ConvertAssetGUIDToAssetInfoMapping(string assetGUID)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(assetGUID))
|
||||||
|
{
|
||||||
|
YooLogger.Error("Failed to mapping assetGUID to asset path, The assetGUID is null or empty.");
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (AssetPathMapping2.TryGetValue(assetGUID, out string assetPath))
|
||||||
|
{
|
||||||
|
return assetPath;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
YooLogger.Warning($"Failed to mapping assetGUID to asset path : {assetGUID}");
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取资源包内的主资源列表
|
/// 获取资源包内的主资源列表
|
||||||
|
|
|
@ -7,14 +7,12 @@ namespace YooAsset
|
||||||
internal class EditorSimulateModeImpl : IPlayModeServices, IBundleServices
|
internal class EditorSimulateModeImpl : IPlayModeServices, IBundleServices
|
||||||
{
|
{
|
||||||
private PackageManifest _activeManifest;
|
private PackageManifest _activeManifest;
|
||||||
private bool _locationToLower;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 异步初始化
|
/// 异步初始化
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public InitializationOperation InitializeAsync(bool locationToLower, string simulateManifestFilePath)
|
public InitializationOperation InitializeAsync(string simulateManifestFilePath)
|
||||||
{
|
{
|
||||||
_locationToLower = locationToLower;
|
|
||||||
var operation = new EditorSimulateModeInitializationOperation(this, simulateManifestFilePath);
|
var operation = new EditorSimulateModeInitializationOperation(this, simulateManifestFilePath);
|
||||||
OperationSystem.StartOperation(operation);
|
OperationSystem.StartOperation(operation);
|
||||||
return operation;
|
return operation;
|
||||||
|
@ -26,7 +24,6 @@ namespace YooAsset
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
_activeManifest = value;
|
_activeManifest = value;
|
||||||
_activeManifest.InitAssetPathMapping(_locationToLower);
|
|
||||||
}
|
}
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,7 +10,6 @@ namespace YooAsset
|
||||||
|
|
||||||
// 参数相关
|
// 参数相关
|
||||||
private string _packageName;
|
private string _packageName;
|
||||||
private bool _locationToLower;
|
|
||||||
private string _defaultHostServer;
|
private string _defaultHostServer;
|
||||||
private string _fallbackHostServer;
|
private string _fallbackHostServer;
|
||||||
private IQueryServices _queryServices;
|
private IQueryServices _queryServices;
|
||||||
|
@ -18,10 +17,9 @@ namespace YooAsset
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 异步初始化
|
/// 异步初始化
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public InitializationOperation InitializeAsync(string packageName, bool locationToLower, string defaultHostServer, string fallbackHostServer, IQueryServices queryServices)
|
public InitializationOperation InitializeAsync(string packageName, string defaultHostServer, string fallbackHostServer, IQueryServices queryServices)
|
||||||
{
|
{
|
||||||
_packageName = packageName;
|
_packageName = packageName;
|
||||||
_locationToLower = locationToLower;
|
|
||||||
_defaultHostServer = defaultHostServer;
|
_defaultHostServer = defaultHostServer;
|
||||||
_fallbackHostServer = fallbackHostServer;
|
_fallbackHostServer = fallbackHostServer;
|
||||||
_queryServices = queryServices;
|
_queryServices = queryServices;
|
||||||
|
@ -67,7 +65,6 @@ namespace YooAsset
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
_activeManifest = value;
|
_activeManifest = value;
|
||||||
_activeManifest.InitAssetPathMapping(_locationToLower);
|
|
||||||
}
|
}
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,14 +7,12 @@ namespace YooAsset
|
||||||
internal class OfflinePlayModeImpl : IPlayModeServices, IBundleServices
|
internal class OfflinePlayModeImpl : IPlayModeServices, IBundleServices
|
||||||
{
|
{
|
||||||
private PackageManifest _activeManifest;
|
private PackageManifest _activeManifest;
|
||||||
private bool _locationToLower;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 异步初始化
|
/// 异步初始化
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public InitializationOperation InitializeAsync(string packageName, bool locationToLower)
|
public InitializationOperation InitializeAsync(string packageName)
|
||||||
{
|
{
|
||||||
_locationToLower = locationToLower;
|
|
||||||
var operation = new OfflinePlayModeInitializationOperation(this, packageName);
|
var operation = new OfflinePlayModeInitializationOperation(this, packageName);
|
||||||
OperationSystem.StartOperation(operation);
|
OperationSystem.StartOperation(operation);
|
||||||
return operation;
|
return operation;
|
||||||
|
@ -26,7 +24,6 @@ namespace YooAsset
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
_activeManifest = value;
|
_activeManifest = value;
|
||||||
_activeManifest.InitAssetPathMapping(_locationToLower);
|
|
||||||
}
|
}
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
|
@ -92,7 +92,7 @@ namespace YooAsset
|
||||||
parameters.DecryptionServices, _bundleServices);
|
parameters.DecryptionServices, _bundleServices);
|
||||||
|
|
||||||
var initializeParameters = parameters as EditorSimulateModeParameters;
|
var initializeParameters = parameters as EditorSimulateModeParameters;
|
||||||
initializeOperation = editorSimulateModeImpl.InitializeAsync(initializeParameters.LocationToLower, initializeParameters.SimulateManifestFilePath);
|
initializeOperation = editorSimulateModeImpl.InitializeAsync(initializeParameters.SimulateManifestFilePath);
|
||||||
}
|
}
|
||||||
else if (_playMode == EPlayMode.OfflinePlayMode)
|
else if (_playMode == EPlayMode.OfflinePlayMode)
|
||||||
{
|
{
|
||||||
|
@ -104,7 +104,7 @@ namespace YooAsset
|
||||||
parameters.DecryptionServices, _bundleServices);
|
parameters.DecryptionServices, _bundleServices);
|
||||||
|
|
||||||
var initializeParameters = parameters as OfflinePlayModeParameters;
|
var initializeParameters = parameters as OfflinePlayModeParameters;
|
||||||
initializeOperation = offlinePlayModeImpl.InitializeAsync(PackageName, initializeParameters.LocationToLower);
|
initializeOperation = offlinePlayModeImpl.InitializeAsync(PackageName);
|
||||||
}
|
}
|
||||||
else if (_playMode == EPlayMode.HostPlayMode)
|
else if (_playMode == EPlayMode.HostPlayMode)
|
||||||
{
|
{
|
||||||
|
@ -118,7 +118,6 @@ namespace YooAsset
|
||||||
var initializeParameters = parameters as HostPlayModeParameters;
|
var initializeParameters = parameters as HostPlayModeParameters;
|
||||||
initializeOperation = hostPlayModeImpl.InitializeAsync(
|
initializeOperation = hostPlayModeImpl.InitializeAsync(
|
||||||
PackageName,
|
PackageName,
|
||||||
initializeParameters.LocationToLower,
|
|
||||||
initializeParameters.DefaultHostServer,
|
initializeParameters.DefaultHostServer,
|
||||||
initializeParameters.FallbackHostServer,
|
initializeParameters.FallbackHostServer,
|
||||||
initializeParameters.QueryServices
|
initializeParameters.QueryServices
|
||||||
|
@ -363,8 +362,17 @@ namespace YooAsset
|
||||||
public AssetInfo GetAssetInfo(string location)
|
public AssetInfo GetAssetInfo(string location)
|
||||||
{
|
{
|
||||||
DebugCheckInitialize();
|
DebugCheckInitialize();
|
||||||
AssetInfo assetInfo = ConvertLocationToAssetInfo(location, null);
|
return ConvertLocationToAssetInfo(location, null);
|
||||||
return assetInfo;
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取资源信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="assetGUID">资源GUID</param>
|
||||||
|
public AssetInfo GetAssetInfoByGUID(string assetGUID)
|
||||||
|
{
|
||||||
|
DebugCheckInitialize();
|
||||||
|
return ConvertAssetGUIDToAssetInfo(assetGUID, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -889,13 +897,14 @@ namespace YooAsset
|
||||||
return _playModeServices.ActiveManifest.IsIncludeBundleFile(cacheGUID);
|
return _playModeServices.ActiveManifest.IsIncludeBundleFile(cacheGUID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 资源定位地址转换为资源信息类
|
|
||||||
/// </summary>
|
|
||||||
private AssetInfo ConvertLocationToAssetInfo(string location, System.Type assetType)
|
private AssetInfo ConvertLocationToAssetInfo(string location, System.Type assetType)
|
||||||
{
|
{
|
||||||
return _playModeServices.ActiveManifest.ConvertLocationToAssetInfo(location, assetType);
|
return _playModeServices.ActiveManifest.ConvertLocationToAssetInfo(location, assetType);
|
||||||
}
|
}
|
||||||
|
private AssetInfo ConvertAssetGUIDToAssetInfo(string assetGUID, System.Type assetType)
|
||||||
|
{
|
||||||
|
return _playModeServices.ActiveManifest.ConvertAssetGUIDToAssetInfo(assetGUID, assetType);
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 调试方法
|
#region 调试方法
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace YooAsset
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 清单文件格式版本
|
/// 清单文件格式版本
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string ManifestFileVersion = "1.4.6";
|
public const string ManifestFileVersion = "1.4.17";
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
Loading…
Reference in New Issue