mirror of https://github.com/tuyoogame/YooAsset
parent
42703def02
commit
6dd1eee6c3
|
@ -196,24 +196,6 @@ namespace YooAsset
|
||||||
return provider.CreateHandle() as SubAssetsOperationHandle;
|
return provider.CreateHandle() as SubAssetsOperationHandle;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 加载资源包里的所有资源对象
|
|
||||||
/// </summary>
|
|
||||||
public static AllAssetsOperationHandle LoadAllAssetsAsync(string assetPath, System.Type assetType)
|
|
||||||
{
|
|
||||||
ProviderBase provider = TryGetProvider(assetPath);
|
|
||||||
if (provider == null)
|
|
||||||
{
|
|
||||||
if (SimulationOnEditor)
|
|
||||||
provider = new DatabaseAllAssetsProvider(assetPath, assetType);
|
|
||||||
else
|
|
||||||
provider = new BundledAllAssetsProvider(assetPath, assetType);
|
|
||||||
provider.InitSpawnDebugInfo();
|
|
||||||
_providers.Add(provider);
|
|
||||||
}
|
|
||||||
return provider.CreateHandle() as AllAssetsOperationHandle;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
internal static void UnloadSubScene(ProviderBase provider)
|
internal static void UnloadSubScene(ProviderBase provider)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,69 +0,0 @@
|
||||||
|
|
||||||
namespace YooAsset
|
|
||||||
{
|
|
||||||
public sealed class AllAssetsOperationHandle : OperationHandleBase
|
|
||||||
{
|
|
||||||
private System.Action<AllAssetsOperationHandle> _callback;
|
|
||||||
|
|
||||||
internal AllAssetsOperationHandle(ProviderBase provider) : base(provider)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
internal override void InvokeCallback()
|
|
||||||
{
|
|
||||||
_callback?.Invoke(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 完成委托
|
|
||||||
/// </summary>
|
|
||||||
public event System.Action<AllAssetsOperationHandle> Completed
|
|
||||||
{
|
|
||||||
add
|
|
||||||
{
|
|
||||||
if (IsValid == false)
|
|
||||||
throw new System.Exception($"{nameof(AllAssetsOperationHandle)} is invalid");
|
|
||||||
if (Provider.IsDone)
|
|
||||||
value.Invoke(this);
|
|
||||||
else
|
|
||||||
_callback += value;
|
|
||||||
}
|
|
||||||
remove
|
|
||||||
{
|
|
||||||
if (IsValid == false)
|
|
||||||
throw new System.Exception($"{nameof(AllAssetsOperationHandle)} is invalid");
|
|
||||||
_callback -= value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 资源包内的资源对象集合
|
|
||||||
/// </summary>
|
|
||||||
public UnityEngine.Object[] AllAssetObjects
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (IsValid == false)
|
|
||||||
return null;
|
|
||||||
return Provider.AllAssetObjects;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 等待异步执行完毕
|
|
||||||
/// </summary>
|
|
||||||
public void WaitForAsyncComplete()
|
|
||||||
{
|
|
||||||
if (IsValid == false)
|
|
||||||
return;
|
|
||||||
Provider.WaitForAsyncComplete();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 释放资源句柄
|
|
||||||
/// </summary>
|
|
||||||
public void Release()
|
|
||||||
{
|
|
||||||
this.ReleaseInternal();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 05c287035a2264f469a654a6152b02c9
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,116 +0,0 @@
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace YooAsset
|
|
||||||
{
|
|
||||||
internal sealed class BundledAllAssetsProvider : BundledProvider
|
|
||||||
{
|
|
||||||
private AssetBundleRequest _cacheRequest;
|
|
||||||
public override float Progress
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (_cacheRequest == null)
|
|
||||||
return 0;
|
|
||||||
return _cacheRequest.progress;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public BundledAllAssetsProvider(string assetPath, System.Type assetType)
|
|
||||||
: base(assetPath, assetType)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
public override void Update()
|
|
||||||
{
|
|
||||||
if (IsDone)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (Status == EStatus.None)
|
|
||||||
{
|
|
||||||
Status = EStatus.CheckBundle;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 1. 检测资源包
|
|
||||||
if (Status == EStatus.CheckBundle)
|
|
||||||
{
|
|
||||||
if (IsWaitForAsyncComplete)
|
|
||||||
{
|
|
||||||
DependBundles.WaitForAsyncComplete();
|
|
||||||
OwnerBundle.WaitForAsyncComplete();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (DependBundles.IsDone() == false)
|
|
||||||
return;
|
|
||||||
if (OwnerBundle.IsDone() == false)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (DependBundles.IsSucceed() == false)
|
|
||||||
{
|
|
||||||
Status = EStatus.Fail;
|
|
||||||
LastError = DependBundles.GetLastError();
|
|
||||||
InvokeCompletion();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (OwnerBundle.Status != AssetBundleLoaderBase.EStatus.Succeed)
|
|
||||||
{
|
|
||||||
Status = EStatus.Fail;
|
|
||||||
LastError = OwnerBundle.LastError;
|
|
||||||
InvokeCompletion();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = EStatus.Loading;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2. 加载资源对象
|
|
||||||
if (Status == EStatus.Loading)
|
|
||||||
{
|
|
||||||
if (IsWaitForAsyncComplete)
|
|
||||||
{
|
|
||||||
if (AssetType == null)
|
|
||||||
AllAssetObjects = OwnerBundle.CacheBundle.LoadAllAssets();
|
|
||||||
else
|
|
||||||
AllAssetObjects = OwnerBundle.CacheBundle.LoadAllAssets(AssetType);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (AssetType == null)
|
|
||||||
_cacheRequest = OwnerBundle.CacheBundle.LoadAllAssetsAsync();
|
|
||||||
else
|
|
||||||
_cacheRequest = OwnerBundle.CacheBundle.LoadAllAssetsAsync(AssetType);
|
|
||||||
}
|
|
||||||
Status = EStatus.Checking;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 3. 检测加载结果
|
|
||||||
if (Status == EStatus.Checking)
|
|
||||||
{
|
|
||||||
if (_cacheRequest != null)
|
|
||||||
{
|
|
||||||
if (IsWaitForAsyncComplete)
|
|
||||||
{
|
|
||||||
// 强制挂起主线程(注意:该操作会很耗时)
|
|
||||||
YooLogger.Warning("Suspend the main thread to load unity asset.");
|
|
||||||
AllAssetObjects = _cacheRequest.allAssets;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (_cacheRequest.isDone == false)
|
|
||||||
return;
|
|
||||||
AllAssetObjects = _cacheRequest.allAssets;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = AllAssetObjects == null ? EStatus.Fail : EStatus.Success;
|
|
||||||
if (Status == EStatus.Fail)
|
|
||||||
{
|
|
||||||
LastError = $"Failed to load all assets from bundle : {OwnerBundle.BundleFileInfo.BundleName}";
|
|
||||||
YooLogger.Error(LastError);
|
|
||||||
}
|
|
||||||
InvokeCompletion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: dd972d8e33cbbaf4aa7f976d59896b0e
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -1,127 +0,0 @@
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace YooAsset
|
|
||||||
{
|
|
||||||
internal sealed class DatabaseAllAssetsProvider : ProviderBase
|
|
||||||
{
|
|
||||||
private string _bundleName;
|
|
||||||
|
|
||||||
public override float Progress
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (IsDone)
|
|
||||||
return 100f;
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public DatabaseAllAssetsProvider(string assetPath, System.Type assetType)
|
|
||||||
: base(assetPath, assetType)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
public override void Update()
|
|
||||||
{
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
if (IsDone)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (Status == EStatus.None)
|
|
||||||
{
|
|
||||||
// 检测资源文件是否存在
|
|
||||||
string guid = UnityEditor.AssetDatabase.AssetPathToGUID(AssetPath);
|
|
||||||
if (string.IsNullOrEmpty(guid))
|
|
||||||
{
|
|
||||||
Status = EStatus.Fail;
|
|
||||||
LastError = $"Not found asset : {AssetPath}";
|
|
||||||
YooLogger.Error(LastError);
|
|
||||||
InvokeCompletion();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取资源包名称
|
|
||||||
_bundleName = AssetSystem.BundleServices.GetBundleName(AssetPath);
|
|
||||||
if (string.IsNullOrEmpty(_bundleName))
|
|
||||||
{
|
|
||||||
Status = EStatus.Fail;
|
|
||||||
LastError = $"Not found bundle name : {AssetPath}";
|
|
||||||
YooLogger.Error(LastError);
|
|
||||||
InvokeCompletion();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = EStatus.Loading;
|
|
||||||
|
|
||||||
// 注意:模拟异步加载效果提前返回
|
|
||||||
if (IsWaitForAsyncComplete == false)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 1. 加载资源对象
|
|
||||||
if (Status == EStatus.Loading)
|
|
||||||
{
|
|
||||||
bool loadFailed = false;
|
|
||||||
if (AssetType == null)
|
|
||||||
{
|
|
||||||
List<UnityEngine.Object> result = new List<Object>(100);
|
|
||||||
AssetInfo[] allAssetInfos = AssetSystem.BundleServices.GetAssetInfos(_bundleName);
|
|
||||||
foreach (var assetInfo in allAssetInfos)
|
|
||||||
{
|
|
||||||
var assetObject = UnityEditor.AssetDatabase.LoadMainAssetAtPath(assetInfo.AssetPath);
|
|
||||||
if (assetObject != null)
|
|
||||||
{
|
|
||||||
result.Add(assetObject);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
YooLogger.Warning($"Failed to load main asset : {assetInfo.AssetPath}");
|
|
||||||
loadFailed = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (loadFailed == false)
|
|
||||||
AllAssetObjects = result.ToArray();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
List<UnityEngine.Object> result = new List<Object>(100);
|
|
||||||
AssetInfo[] allAssetInfos = AssetSystem.BundleServices.GetAssetInfos(_bundleName);
|
|
||||||
foreach (var assetInfo in allAssetInfos)
|
|
||||||
{
|
|
||||||
var assetObject = UnityEditor.AssetDatabase.LoadAssetAtPath(assetInfo.AssetPath, AssetType);
|
|
||||||
if (assetObject != null)
|
|
||||||
{
|
|
||||||
if (AssetType.IsAssignableFrom(assetObject.GetType()))
|
|
||||||
result.Add(assetObject);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
YooLogger.Warning($"Failed to load asset : {assetInfo.AssetPath}");
|
|
||||||
loadFailed = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (loadFailed == false)
|
|
||||||
AllAssetObjects = result.ToArray();
|
|
||||||
}
|
|
||||||
Status = EStatus.Checking;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2. 检测加载结果
|
|
||||||
if (Status == EStatus.Checking)
|
|
||||||
{
|
|
||||||
Status = AllAssetObjects == null ? EStatus.Fail : EStatus.Success;
|
|
||||||
if (Status == EStatus.Fail)
|
|
||||||
{
|
|
||||||
LastError = $"Failed to load all assets : {nameof(AssetType)} in bundle {_bundleName}";
|
|
||||||
YooLogger.Error(LastError);
|
|
||||||
}
|
|
||||||
InvokeCompletion();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: b418b6a8da0e3d240b1566cc44fc4b2b
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
|
@ -140,8 +140,6 @@ namespace YooAsset
|
||||||
handle = new SceneOperationHandle(this);
|
handle = new SceneOperationHandle(this);
|
||||||
else if (IsSubAssetsProvider())
|
else if (IsSubAssetsProvider())
|
||||||
handle = new SubAssetsOperationHandle(this);
|
handle = new SubAssetsOperationHandle(this);
|
||||||
else if (IsAllAssetsProvider())
|
|
||||||
handle = new AllAssetsOperationHandle(this);
|
|
||||||
else
|
else
|
||||||
handle = new AssetOperationHandle(this);
|
handle = new AssetOperationHandle(this);
|
||||||
|
|
||||||
|
@ -212,13 +210,6 @@ namespace YooAsset
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
public bool IsAllAssetsProvider()
|
|
||||||
{
|
|
||||||
if (this is BundledAllAssetsProvider || this is DatabaseAllAssetsProvider)
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region 异步编程相关
|
#region 异步编程相关
|
||||||
private TaskCompletionSource<object> _taskCompletionSource;
|
private TaskCompletionSource<object> _taskCompletionSource;
|
||||||
|
|
|
@ -342,6 +342,18 @@ namespace YooAsset
|
||||||
AssetSystem.ForceUnloadAllAssets();
|
AssetSystem.ForceUnloadAllAssets();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取调试信息
|
||||||
|
/// </summary>
|
||||||
|
internal static void GetDebugReport(DebugReport report)
|
||||||
|
{
|
||||||
|
if (report == null)
|
||||||
|
YooLogger.Error($"{nameof(DebugReport)} is null");
|
||||||
|
|
||||||
|
AssetSystem.GetDebugReport(report);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 资源信息
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取资源包信息
|
/// 获取资源包信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -365,11 +377,20 @@ namespace YooAsset
|
||||||
return _bundleServices.GetBundleInfo(bundleName);
|
return _bundleServices.GetBundleInfo(bundleName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取资源信息列表
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="bundleInfo">资源包信息</param>
|
||||||
|
public static AssetInfo[] GetAssetInfos(BundleInfo bundleInfo)
|
||||||
|
{
|
||||||
|
DebugCheckInitialize();
|
||||||
|
return _bundleServices.GetAssetInfos(bundleInfo.BundleName);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取资源信息列表
|
/// 获取资源信息列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="tag">资源标签</param>
|
/// <param name="tag">资源标签</param>
|
||||||
/// <returns></returns>
|
|
||||||
public static AssetInfo[] GetAssetInfos(string tag)
|
public static AssetInfo[] GetAssetInfos(string tag)
|
||||||
{
|
{
|
||||||
DebugCheckInitialize();
|
DebugCheckInitialize();
|
||||||
|
@ -381,23 +402,12 @@ namespace YooAsset
|
||||||
/// 获取资源信息列表
|
/// 获取资源信息列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="tags">资源标签列表</param>
|
/// <param name="tags">资源标签列表</param>
|
||||||
/// <returns></returns>
|
|
||||||
public static AssetInfo[] GetAssetInfos(string[] tags)
|
public static AssetInfo[] GetAssetInfos(string[] tags)
|
||||||
{
|
{
|
||||||
DebugCheckInitialize();
|
DebugCheckInitialize();
|
||||||
return _bundleServices.GetAssetInfos(tags);
|
return _bundleServices.GetAssetInfos(tags);
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
/// <summary>
|
|
||||||
/// 获取调试信息
|
|
||||||
/// </summary>
|
|
||||||
internal static void GetDebugReport(DebugReport report)
|
|
||||||
{
|
|
||||||
if (report == null)
|
|
||||||
YooLogger.Error($"{nameof(DebugReport)} is null");
|
|
||||||
|
|
||||||
AssetSystem.GetDebugReport(report);
|
|
||||||
}
|
|
||||||
|
|
||||||
#region 场景加载
|
#region 场景加载
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -646,86 +656,6 @@ namespace YooAsset
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 资源加载
|
|
||||||
/// <summary>
|
|
||||||
/// 同步加载资源对象所属资源包里的所有资源
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="assetInfo">资源信息</param>
|
|
||||||
public static AllAssetsOperationHandle LoadAllAssetsSync(AssetInfo assetInfo)
|
|
||||||
{
|
|
||||||
DebugCheckInitialize();
|
|
||||||
return LoadAllAssetsInternal(assetInfo.AssetPath, assetInfo.AssetType, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 同步加载资源对象所属资源包里的所有资源
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="TObject">资源类型</typeparam>
|
|
||||||
/// <param name="location">资源的定位地址</param>
|
|
||||||
public static AllAssetsOperationHandle LoadAllAssetsSync<TObject>(string location)
|
|
||||||
{
|
|
||||||
DebugCheckInitialize();
|
|
||||||
string assetPath = _locationServices.ConvertLocationToAssetPath(location);
|
|
||||||
return LoadAllAssetsInternal(assetPath, typeof(TObject), true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 同步加载资源对象所属资源包里的所有资源
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="location">资源的定位地址</param>
|
|
||||||
/// <param name="type">资源类型</param>
|
|
||||||
public static AllAssetsOperationHandle LoadAllAssetsSync(string location, System.Type type)
|
|
||||||
{
|
|
||||||
DebugCheckInitialize();
|
|
||||||
string assetPath = _locationServices.ConvertLocationToAssetPath(location);
|
|
||||||
return LoadAllAssetsInternal(assetPath, type, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 异步加载资源对象所属资源包里的所有资源
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="assetInfo">资源信息</param>
|
|
||||||
public static AllAssetsOperationHandle LoadAllAssetsAsync(AssetInfo assetInfo)
|
|
||||||
{
|
|
||||||
DebugCheckInitialize();
|
|
||||||
return LoadAllAssetsInternal(assetInfo.AssetPath, assetInfo.AssetType, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 异步加载资源对象所属资源包里的所有资源
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="TObject">资源类型</typeparam>
|
|
||||||
/// <param name="location">资源的定位地址</param>
|
|
||||||
public static AllAssetsOperationHandle LoadAllAssetsAsync<TObject>(string location)
|
|
||||||
{
|
|
||||||
DebugCheckInitialize();
|
|
||||||
string assetPath = _locationServices.ConvertLocationToAssetPath(location);
|
|
||||||
return LoadAllAssetsInternal(assetPath, typeof(TObject), false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 异步加载资源对象所属资源包里的所有资源
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="location">资源的定位地址</param>
|
|
||||||
/// <param name="type">资源类型</param>
|
|
||||||
public static AllAssetsOperationHandle LoadAllAssetsAsync(string location, System.Type type)
|
|
||||||
{
|
|
||||||
DebugCheckInitialize();
|
|
||||||
string assetPath = _locationServices.ConvertLocationToAssetPath(location);
|
|
||||||
return LoadAllAssetsInternal(assetPath, type, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static AllAssetsOperationHandle LoadAllAssetsInternal(string assetPath, System.Type assetType, bool waitForAsyncComplete)
|
|
||||||
{
|
|
||||||
var handle = AssetSystem.LoadAllAssetsAsync(assetPath, assetType);
|
|
||||||
if (waitForAsyncComplete)
|
|
||||||
handle.WaitForAsyncComplete();
|
|
||||||
return handle;
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region 资源下载
|
#region 资源下载
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 创建补丁下载器,用于下载更新资源标签指定的资源包文件
|
/// 创建补丁下载器,用于下载更新资源标签指定的资源包文件
|
||||||
|
|
Loading…
Reference in New Issue