mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
Update TResource.cs
This commit is contained in:
@@ -24,6 +24,11 @@ namespace TEngine.Runtime
|
||||
m_ResourceHelper = resourceHelper;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载GameObject
|
||||
/// </summary>
|
||||
/// <param name="path">路径</param>
|
||||
/// <returns></returns>
|
||||
public static GameObject Load(string path)
|
||||
{
|
||||
if (m_ResourceHelper == null)
|
||||
@@ -35,6 +40,12 @@ namespace TEngine.Runtime
|
||||
return m_ResourceHelper.Load(path);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载GameObject并设置父节点
|
||||
/// </summary>
|
||||
/// <param name="path">路径</param>
|
||||
/// <param name="parent">父节点</param>
|
||||
/// <returns></returns>
|
||||
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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载泛型
|
||||
/// </summary>
|
||||
/// <param name="path">路径</param>
|
||||
/// <typeparam name="T">泛型(UnityEngine.Object)</typeparam>
|
||||
/// <returns></returns>
|
||||
public static T Load<T>(string path) where T : UnityEngine.Object
|
||||
{
|
||||
if (m_ResourceHelper == null)
|
||||
@@ -57,6 +74,11 @@ namespace TEngine.Runtime
|
||||
return m_ResourceHelper.Load<T>(path);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步加载GameObject
|
||||
/// </summary>
|
||||
/// <param name="path">路径</param>
|
||||
/// <param name="callBack">回调</param>
|
||||
public static void LoadAsync(string path, Action<GameObject> callBack)
|
||||
{
|
||||
if (m_ResourceHelper == null)
|
||||
@@ -68,6 +90,13 @@ namespace TEngine.Runtime
|
||||
m_ResourceHelper.LoadAsync(path, callBack);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步加载泛型
|
||||
/// </summary>
|
||||
/// <param name="path"></param>
|
||||
/// <param name="callBack"></param>
|
||||
/// <param name="withSubAsset"></param>
|
||||
/// <typeparam name="T">泛型(UnityEngine.Object)</typeparam>
|
||||
public static void LoadAsync<T>(string path, Action<T> callBack, bool withSubAsset = false)
|
||||
where T : UnityEngine.Object
|
||||
{
|
||||
@@ -79,5 +108,96 @@ namespace TEngine.Runtime
|
||||
|
||||
m_ResourceHelper.LoadAsync<T>(path, callBack, withSubAsset);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步加载资源。
|
||||
/// </summary>
|
||||
/// <param name="path">要加载资源的路径全名。</param>
|
||||
/// <param name="priority">加载资源的优先级。</param>
|
||||
/// <param name="loadAssetCallbacks">加载资源回调函数集。</param>
|
||||
/// <param name="userData">用户自定义数据。</param>
|
||||
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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步加载资源。
|
||||
/// </summary>
|
||||
/// <param name="path">要加载资源的路径全名。</param>
|
||||
/// <param name="priority">加载资源的优先级。</param>
|
||||
/// <param name="loadAssetCallbacks">加载资源回调函数集。</param>
|
||||
/// <param name="userData">用户自定义数据。</param>
|
||||
public static void LoadAsset<T>(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<T>(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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user