From 6f3808a97ecd3ca7710b79ada81d2719735e330f Mon Sep 17 00:00:00 2001
From: ALEXTANG <574809918@qq.com>
Date: Mon, 5 Sep 2022 17:45:45 +0800
Subject: [PATCH] Update TResource.cs
---
.../Scripts/Runtime/Core/Res/TResource.cs | 120 ++++++++++++++++++
1 file changed, 120 insertions(+)
diff --git a/Assets/TEngine/Scripts/Runtime/Core/Res/TResource.cs b/Assets/TEngine/Scripts/Runtime/Core/Res/TResource.cs
index bb8a8aed..189774a5 100644
--- a/Assets/TEngine/Scripts/Runtime/Core/Res/TResource.cs
+++ b/Assets/TEngine/Scripts/Runtime/Core/Res/TResource.cs
@@ -24,6 +24,11 @@ namespace TEngine.Runtime
m_ResourceHelper = resourceHelper;
}
+ ///
+ /// 加载GameObject
+ ///
+ /// 路径
+ ///
public static GameObject Load(string path)
{
if (m_ResourceHelper == null)
@@ -35,6 +40,12 @@ namespace TEngine.Runtime
return m_ResourceHelper.Load(path);
}
+ ///
+ /// 加载GameObject并设置父节点
+ ///
+ /// 路径
+ /// 父节点
+ ///
public static GameObject Load(string path, Transform parent)
{
if (m_ResourceHelper == null)
@@ -46,6 +57,12 @@ namespace TEngine.Runtime
return m_ResourceHelper.Load(path, parent);
}
+ ///
+ /// 加载泛型
+ ///
+ /// 路径
+ /// 泛型(UnityEngine.Object)
+ ///
public static T Load(string path) where T : UnityEngine.Object
{
if (m_ResourceHelper == null)
@@ -57,6 +74,11 @@ namespace TEngine.Runtime
return m_ResourceHelper.Load(path);
}
+ ///
+ /// 异步加载GameObject
+ ///
+ /// 路径
+ /// 回调
public static void LoadAsync(string path, Action callBack)
{
if (m_ResourceHelper == null)
@@ -68,6 +90,13 @@ namespace TEngine.Runtime
m_ResourceHelper.LoadAsync(path, callBack);
}
+ ///
+ /// 异步加载泛型
+ ///
+ ///
+ ///
+ ///
+ /// 泛型(UnityEngine.Object)
public static void LoadAsync(string path, Action callBack, bool withSubAsset = false)
where T : UnityEngine.Object
{
@@ -79,5 +108,96 @@ namespace TEngine.Runtime
m_ResourceHelper.LoadAsync(path, callBack, withSubAsset);
}
+
+ ///
+ /// 异步加载资源。
+ ///
+ /// 要加载资源的路径全名。
+ /// 加载资源的优先级。
+ /// 加载资源回调函数集。
+ /// 用户自定义数据。
+ public static void LoadAsset(string path, int priority, LoadAssetCallbacks loadAssetCallbacks, object userData)
+ {
+ if (loadAssetCallbacks == null)
+ {
+ Log.Error("Load asset callbacks is invalid.");
+ return;
+ }
+
+ if (string.IsNullOrEmpty(path))
+ {
+ if (loadAssetCallbacks.LoadAssetFailureCallback != null)
+ {
+ loadAssetCallbacks.LoadAssetFailureCallback(path, LoadResourceStatus.NotExist,
+ "Asset name is invalid.", userData);
+ }
+
+ return;
+ }
+
+ var timeWatcher = new GameTickWatcher();
+
+ m_ResourceHelper.LoadAsync(path, (gameObject) =>
+ {
+ if (gameObject == null)
+ {
+ if (loadAssetCallbacks.LoadAssetFailureCallback != null)
+ {
+ loadAssetCallbacks.LoadAssetFailureCallback(path, LoadResourceStatus.NotExist,
+ Utility.Text.Format("Asset name '{0}' is invalid.", path), userData);
+ }
+ }
+ else
+ {
+ loadAssetCallbacks.LoadAssetSuccessCallback(path, gameObject, timeWatcher.ElapseTime(), userData);
+ }
+ });
+ }
+
+ ///
+ /// 异步加载资源。
+ ///
+ /// 要加载资源的路径全名。
+ /// 加载资源的优先级。
+ /// 加载资源回调函数集。
+ /// 用户自定义数据。
+ public static void LoadAsset(string path, int priority, LoadAssetCallbacks loadAssetCallbacks,
+ object userData) where T : UnityEngine.Object
+ {
+ if (loadAssetCallbacks == null)
+ {
+ Log.Error("Load asset callbacks is invalid.");
+ return;
+ }
+
+ if (string.IsNullOrEmpty(path))
+ {
+ if (loadAssetCallbacks.LoadAssetFailureCallback != null)
+ {
+ loadAssetCallbacks.LoadAssetFailureCallback(path, LoadResourceStatus.NotExist,
+ "Asset name is invalid.", userData);
+ }
+
+ return;
+ }
+
+ var timeWatcher = new GameTickWatcher();
+
+ m_ResourceHelper.LoadAsync(path, (obj) =>
+ {
+ if (obj == null)
+ {
+ if (loadAssetCallbacks.LoadAssetFailureCallback != null)
+ {
+ loadAssetCallbacks.LoadAssetFailureCallback(path, LoadResourceStatus.NotExist,
+ Utility.Text.Format("Asset name '{0}' is invalid.", path), userData);
+ }
+ }
+ else
+ {
+ loadAssetCallbacks.LoadAssetSuccessCallback(path, obj, timeWatcher.ElapseTime(), userData);
+ }
+ });
+ }
}
}
\ No newline at end of file