unity---资源加载模块&对象池的优化
资源加载模块
- 异步加载
- 委托和lambda表达式
- 协程
- 泛型
资源加载类


代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class ResMgr : Singleton<ResMgr>
{
public T Load<T>(string name ) where T:Object{
T res = Resources.Load<T>(name);
if(res is GameObject){
return GameObject.Instantiate(res);
}
return res;
}
public void LoadAsync<T>(string name , UnityAction<T> callBack)where T:Object{
MonoMgr.Instance.StartCoroutine(ReallyLoadAsync(name,callBack));
}
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);
}
}
测试类代码

利用lambda简化
对象池的优化




浙公网安备 33010602011771号