53 lines
1.3 KiB
C#
Raw Normal View History

2025-04-23 21:09:19 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
/// <summary>
/// <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
/// 1<><EFBFBD><ECB2BD><EFBFBD>أ<EFBFBD><32>к<EFBFBD>lambda<64><61><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><33>̣<EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD>
/// </summary>
public class ResMgr : BaseManager<ResMgr>
{
//ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
public T Load<T>(string name)where T:Object
{
T res = Resources.Load<T>(name);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>GameObject<63><74><EFBFBD>͵<EFBFBD> <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>󷵻س<F3B7B5BB>ȥ <20>ⲿֱ<E2B2BF><D6B1>ʹ<EFBFBD>ü<EFBFBD><C3BC><EFBFBD>
if(res is GameObject)
{
return GameObject.Instantiate(res);
}
else//TextAsset AudioClip <20><><EFBFBD><EFBFBD>Ҫʵ<D2AA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>Ҫ<EFBFBD><D2AA>ֵ<EFBFBD><D6B5>ijЩ<C4B3><D0A9><EFBFBD><EFBFBD>
{
return res;
}
}
//<2F><EFBFBD><ECB2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
public void LoadAsync<T>(string name, UnityAction<T> callback ) where T : Object
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB2BD><EFBFBD>ص<EFBFBD>Э<EFBFBD><D0AD>
MonoMgr.GetInstance().StartCoroutine(ReallyLoadAsync(name, callback));
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Эͬ<D0AD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD><EFBFBD><ECB2BD><EFBFBD>ض<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>Դ
private IEnumerator ReallyLoadAsync<T>(string name, UnityAction<T> callback) where T : Object
{
ResourceRequest r = Resources.LoadAsync<T>(name);
yield return r;
if(r.asset is GameObject)
{
callback(GameObject.Instantiate(r.asset) as T);
}
else
{
callback(r.asset as T);
}
}
}