public void Reset() { OnObjFinish = null; OnFinish = null; Params.Clear(); ResObj = null; }
/// <summary> /// 异步获得对象 /// </summary> /// <param name="path">对象路径</param> /// <param name="onFinish">获得回调</param> /// <param name="priority">加载优先级</param> /// <param name="setCreateNode">设置创建节点</param> /// <param name="paramValues">回调参数</param> public long SpawnAsync(string path, OnAsyncObjFinish onFinish, LoadResPriority priority = LoadResPriority.Res_Middle, bool setCreateNode = false, params object[] paramValues) { return(ObjManager.Instance.InstantiateObjectAsyncAsset(path, GetHashCode(), onFinish, priority, setCreateNode, paramValues)); }
public void Reset() { m_ObjDealFinish = null; m_ResObj = null; m_ResDealFinish = null; m_Param1 = m_Param2 = m_Param3 = null; }
public void Reset() { m_DealFinish = null; m_Param1 = null; m_Param2 = null; m_Param3 = null; }
/// <summary> /// 异步加载 /// </summary> /// <param name="path">路径</param> /// <param name="deaFinish">资源加载完成回调</param> /// <param name="priority">加载优先级</param> /// <param name="setSceneParent">是否设置Parent为SceneTrs</param> /// <param name="param1"></param> /// <param name="param2"></param> /// <param name="param3"></param> /// <param name="bClear">跳场景是否清除</param> public long InstantiateObjectAsync(string path, OnAsyncObjFinish deaFinish, LoadResPriority priority, bool setSceneParent = false, object param1 = null, object param2 = null, object param3 = null, bool bClear = true) { if (string.IsNullOrEmpty(path)) { return(0); } uint crc = CRC32.GetCRC32(path); TResouceObj resObj = GetObjectFromPool(crc); if (resObj != null) { if (setSceneParent) { resObj.CloneObj.transform.SetParent(SceneTrs, false); } deaFinish?.Invoke(path, resObj.CloneObj, param1, param2, param3); return(resObj.Guid); } long guid = ResourcesManager.Instance.CreatGuid(); resObj = mResouceObjPool.Allocate(); resObj.Crc = crc; resObj.SetSceneParent = setSceneParent; resObj.Clear = bClear; resObj.DealFinish = deaFinish; resObj.Param1 = param1; resObj.Param2 = param2; resObj.Param3 = param3; //调用ResouceManager的异步加载接口 ResourcesManager.Instance.AsyncLoadResouce(path, resObj, OnLoadResouceObjFinish, priority); return(guid); }
public void Reset() { dealFinish = null; param1 = null; param2 = null; param3 = null; }
public void Reset() { m_DealObjFinish = null; m_Param1 = null; m_Param2 = null; m_Param3 = null; m_ResObj = null; }
public void Reset() { DealObjFinish = null; DealFinish = null; Param1 = null; Param2 = null; Param3 = null; }
public void Reset() { m_Crc = 0; m_CloneObj = null; m_bClear = true; m_Guid = 0; m_Already = false; m_SetSceneParent = false; m_dealFinish = null; m_OfflineData = null; }
public void Reset() { m_Crc = 0; m_CloneObj = null; m_bClear = true; m_Guid = 0; m_setSceneParent = false; m_DealFnish = null; m_param1 = m_param2 = m_param3 = null; m_OfflineData = null; }
/// <summary> /// 异步加载资源 (仅仅是不需要实例化的资源) /// </summary> private void AsyncLoadResource <T>(string path, OnAsyncObjFinish onFinish, uint crc = 0, ResLoadMode mode = ResLoadMode.Null, LoadResPriority priority = LoadResPriority.Res_Slow, params object[] paramValues) where T : UnityEngine.Object { if (mode == ResLoadMode.Null) { mode = LoadMode(ref path); } if (crc == 0) { crc = Crc32.GetCrc32(path); } ResItem item = GetCacheResouceItem(crc); if (item != null) { if (onFinish != null) { onFinish(path, item.Obj, paramValues); } return; } //判断是否在加载中 AsyncLoadResParam param = null; if (!_LoadingAssetDic.TryGetValue(crc, out param) || param == null) { param = _AsyncLoadResParamPool.Spawn(true); param.Crc = crc; param.Path = path; param.Priority = priority; param.ResType = typeof(T); param.LoadMode = JudgeLoadMode(mode); _LoadingAssetDic.Add(crc, param); _LoadingAssetList[(int)priority].Add(param); } //回调列表里面加回调 AsyncCallBack callBack = _AsyncCallBackPool.Spawn(true); callBack.OnObjFinish = onFinish; if (paramValues != null && paramValues.Length > 0) { foreach (object value in paramValues) { callBack.Params.Add(value); } } param.CallBackList.Add(callBack); }
public void Reset() { Crc = 0; ResItem = null; CloneObj = null; ClearByChangeScene = true; Guid = 0; AlreadyRelease = false; SetParent = false; OnFinish = null; ParamList.Clear(); }
public void Reset() { m_Crc = 0; m_CloneObj = null; m_ClearScene = true; m_Guid = 0; m_ResItem = null; m_Already = false; m_SetSceneParent = false; m_DealFinish = null; m_Param1 = m_Param2 = m_Param3 = null; }
/// <summary> /// 异步对象加载 /// </summary> /// <param UIName="path"></param> /// <param UIName="fealFinish"></param> /// <param UIName="priority"></param> /// <param UIName="setSceneObject"></param> /// <param UIName="param1"></param> /// <param UIName="param2"></param> /// <param UIName="param3"></param> /// <param UIName="clearChangeScene"></param> private long InstantiateObjectAsync(string path, OnAsyncObjFinish onFinish, LoadResPriority priority, bool setCreateNode = false, params object[] paramValues) { if (string.IsNullOrEmpty(path)) { return(0); } ResLoadMode mode = ResManager.Instance.LoadMode(ref path); uint crc = Crc32.GetCrc32(path); return(InstantiateObjectAsync(path, crc, mode, onFinish, priority, setCreateNode, paramValues)); }
//离线数据 //public OfflineData m_OfflineData = null; public void Reset() { crc = 0; cloneObj = null; clear = true; guid = 0; resItem = null; already = false; setSceneParent = false; dealFinish = null; param1 = param2 = param3 = null; //m_OfflineData = null; }
public void Reset() { Crc = 0; CloneObj = null; Clear = true; Guid = 0; ResItem = null; Already = false; SetSceneParent = false; DealFinish = null; Param1 = null; Param2 = null; Param3 = null; OffData = null; }
/// <summary> /// 异步加载资源 (仅仅是不需要实例化的资源) /// </summary> internal void AsyncLoadResourceAsset <T>(string path, OnAsyncObjFinish onFinish, int assetHelperHash, LoadResPriority priority = LoadResPriority.Res_Slow, params object[] paramValues) where T : UnityEngine.Object { if (!string.IsNullOrEmpty(path)) { ResLoadMode mode = LoadMode(ref path); uint crc = Crc32.GetCrc32(path); AddResAsset(crc, assetHelperHash); AsyncLoadResource <T>(path, onFinish, crc, mode, priority, paramValues); } else { Debug.LogError("路径为null"); } }
/// <summary> /// 异步对象加载 /// </summary> public long InstantiateObjectAsync(string path, OnAsyncObjFinish dealFinish, LoadResPriority priority, bool setSceneObject = false, object param1 = null, object param2 = null, object param3 = null, bool bClear = true) { if (string.IsNullOrEmpty(path)) { return(0); } uint crc = CRC32.GetCRC32(path); ResourceObj resObj = GetObjectFromPool(crc); if (resObj != null) { if (setSceneObject) { resObj.m_CloneObj.transform.SetParent(SceneTrs, false); } if (dealFinish != null) { dealFinish(path, resObj.m_CloneObj, param1, param2, param3); } return(resObj.m_Guid); } long guid = ResourceManager.Instance.CreateGUID(); resObj = m_ResourceObjClassPool.Spawn(true); resObj.m_Crc = crc; resObj.m_setSceneParent = setSceneObject; resObj.m_bClear = bClear; resObj.m_DealFnish = dealFinish; resObj.m_param1 = param1; resObj.m_param2 = param2; resObj.m_param3 = param3; //调用ResourceManager异步加载接口 ResourceManager.Instance.AsyncLoadResource(path, resObj, OnLoadResourceObjFinish, priority); return(guid); }
/// <summary> /// 异步加载资源(仅仅是不需要实例化的资源,例如texture,音频等等) /// </summary> public void AsyncLoadResource(string path, OnAsyncObjFinish dealFinish, LoadResPriority priority, bool isSprite = false, object param1 = null, object param2 = null, object param3 = null, uint crc = 0) { if (crc == 0) { crc = CRC32.GetCRC32(path); } ResourceItem item = GetCacheResourceItem(crc); if (item != null) { if (dealFinish != null) { dealFinish(path, item.m_Obj, param1, param2, param3); } return; } //判断是否在加载中 AsynvLoadResParam para = null; if (!m_LodingAssetDic.TryGetValue(crc, out para) || para == null) { para = m_AsyncLoadResParamPool.Spawn(true); para.m_Crc = crc; para.m_Path = path; para.m_SpriteBoo = isSprite; para.m_Priority = priority; m_LodingAssetDic.Add(crc, para); m_LoadingAssetList[(int)priority].Add(para); } //往回调列表里加回调 //这里加的是不针对的回调 ResMgrAsyncCallBack callBack = m_AsyncCallBackPool.Spawn(true); callBack.m_ResDealFinish = dealFinish; callBack.m_Param1 = param1; callBack.m_Param2 = param2; callBack.m_Param3 = param3; para.m_CallBackList.Add(callBack); }
/// <summary> /// 异步加载资源(仅仅是不需要实例化的资源,如音频,图片等等) /// </summary> public void AsynLoadResource(string path, OnAsyncObjFinish dealFinish, LoadResPriority priority, object p1 = null, object p2 = null, object p3 = null, uint crc = 0) { if (crc == 0) { crc = CRC32.GetCRC32(path); } ResourceItem item = GetCacheResourrceItem(crc); if (item != null) { if (dealFinish != null) { dealFinish(path, item.m_Obj, p1, p2, p3); } return; } //判断是否在加载中 AsyncLoadResParam para = null; if (!m_LoadingAssetDic.TryGetValue(crc, out para) || para == null) { para = m_AsyncLoadResParamPool.Spawn(true); para.m_Crc = crc; para.m_Path = path; para.m_Priority = priority; m_LoadingAssetDic.Add(crc, para); m_LoadingAssetList[(int)priority].Add(para); } //往回调列表里面添加回调 AsyncCallBack callBack = m_AsyncCallBackPool.Spawn(true); callBack.m_DealFinish = dealFinish; callBack.m_Param1 = p1; callBack.m_Param2 = p2; callBack.m_Param3 = p3; para.m_CallBackList.Add(callBack); }
/// <summary> /// 异步加载资源(仅仅是不需要实例化的资源,例如音频,图片等) /// </summary> /// <param name="path"></param> /// <param name="dealFinish"></param> /// <param name="priority"></param> /// <param name="param1"></param> /// <param name="param2"></param> /// <param name="param3"></param> /// <param name="crc"></param> public void AsyncLoadResouce(string path, OnAsyncObjFinish dealFinish, LoadResPriority priority, bool isSprite = false, object param1 = null, object param2 = null, object param3 = null, uint crc = 0) { if (crc == 0) { crc = CRC32.GetCRC32(path); } TResouceItem item = GetCacheResouceItem(crc); if (item != null) { if (dealFinish != null) { dealFinish(path, item.Obj, param1, param2, param3); } return; } //判断是否在加载中 TAsyncLoadResParam para = null; if (!mLoadingAssetDic.TryGetValue(crc, out para) || para == null) { para = mAsyncLoadResParamPool.Allocate(); para.Crc = crc; para.Path = path; para.IsSprite = isSprite; para.Priority = priority; mLoadingAssetDic.Add(crc, para); mLoadingAssetList[(int)priority].Add(para); } //往回调列表里面加回调 TAsyncCallBack callBack = mAsyncCallBackPool.Allocate(); callBack.DealObjFinish = dealFinish; callBack.Param1 = param1; callBack.Param2 = param2; callBack.Param3 = param3; para.CallbackList.Add(callBack); }
/// <summary> /// 异步加载资源,仅仅是不需要实例化的资源,例如音频,图片等等 /// </summary> public void AsyncLoadResource(string path, OnAsyncObjFinish dealFinish, LoadResPriority priority, uint crc = 0, object param1 = null, object param2 = null, object param3 = null) { if (crc == 0) { crc = CRC32.GetCRC32(path); } ResourceItem item = GetCancheResourceItem(crc); if (item != null) { if (dealFinish != null) { dealFinish(path, item._obj, param1, param2, param3); } return; } //判断是否在加载中 AsyncLoadResParam param = null; if (!_loadingAssetDic.TryGetValue(crc, out param) || param == null) { param = _asyncLoadResParamPool.Spawn(true); param.crc = crc; param.path = path; param.priority = priority; _loadingAssetDic.Add(crc, param); _loadingAssetList[(int)priority].Add(param); } //往回调列表里面加回调 AsyncCallBack callBack = _asyncCallBackPool.Spawn(true); callBack.dealFinish = dealFinish; callBack.param1 = param1; callBack.param2 = param2; callBack.param3 = param3; param.callBackList.Add(callBack); }
/// <summary> /// 异步对象加载 /// </summary> /// <param UIName="path"></param> /// <param UIName="fealFinish"></param> /// <param UIName="priority"></param> /// <param UIName="setSceneObject"></param> /// <param UIName="param1"></param> /// <param UIName="param2"></param> /// <param UIName="param3"></param> /// <param UIName="clearChangeScene"></param> private long InstantiateObjectAsync(string path, uint crc, ResLoadMode mode, OnAsyncObjFinish onFinish, LoadResPriority priority, bool setCreateNode = false, params object[] paramValues) { ResouceObj resObj = GetObjectFromPool(crc); if (resObj != null) { if (setCreateNode) { resObj.CloneObj.transform.SetParent(_CreateNode, false); } if (onFinish != null) { resObj.ResItem.RefCount.Increase(); onFinish(path, resObj.CloneObj, paramValues); } return(resObj.Guid); } long guid = ResManager.CreateGuid(); resObj = new ResouceObj();// _ResourceObjClassPool.Spawn(true); resObj.Crc = crc; resObj.SetParent = setCreateNode; resObj.OnFinish = onFinish; if (paramValues != null && paramValues.Length > 0) { foreach (object value in paramValues) { resObj.ParamList.Add(value); } } //调用ResourceManagerd的异步加载接口 ResManager.Instance.AsyncLoadResource(path, mode, resObj, OnLoadResourceObjFinish, priority); return(guid); }
/// <summary> /// 异步获得对象 /// </summary> /// <param name="path">对象路径</param> /// <param name="onFinish">获得回调</param> /// <param name="priority">加载优先级</param> /// <param name="setCreateNode">设置创建节点</param> /// <param name="paramValues">回调参数</param> internal static long SpawnAsync(string path, OnAsyncObjFinish onFinish, LoadResPriority priority = LoadResPriority.Res_Middle, bool setCreateNode = false, params object[] paramValues) { return(Instance.InstantiateObjectAsync(path, onFinish, priority, setCreateNode, paramValues)); }
public static void SpawnAsync(string path, OnAsyncObjFinish onFinish, LoadResPriority priority, bool setCreateNode = false, params object[] paramValues) { ObjManager.SpawnAsync(path, onFinish, priority, setCreateNode, paramValues); }
/// <summary> /// 异步加载资源 /// </summary> /// <typeparam name="T">资源类型</typeparam> /// <param name="path">资源路径</param> /// <param name="onFinish">完成回调</param> /// <param name="priority">资源加载优先级</param> /// <param name="paramValues">参数列表</param> public static void AsyncLoadRes <T>(string path, OnAsyncObjFinish onFinish, LoadResPriority priority = LoadResPriority.Res_Slow, params object[] paramValues) where T : UnityEngine.Object { ResManager.AsyncLoadRes <T>(path, onFinish, priority, paramValues); }
/// <summary> /// 异步加载资源 /// </summary> /// <typeparam name="T">资源类型</typeparam> /// <param name="path">资源路径</param> /// <param name="onFinish">完成回调</param> /// <param name="priority">资源加载优先级</param> /// <param name="paramValues">参数列表</param> internal static void AsyncLoadRes <T>(string path, OnAsyncObjFinish onFinish, LoadResPriority priority = LoadResPriority.Res_Slow, params object[] paramValues) where T : UnityEngine.Object { Instance.AsyncLoadResource <T>(path, onFinish, 0, ResLoadMode.Null, priority, paramValues); }
/// <summary> /// 异步加载资源 /// </summary> /// <typeparam name="T">资源类型</typeparam> /// <param name="path">资源路径</param> /// <param name="onFinish">完成回调</param> /// <param name="priority">资源加载优先级</param> /// <param name="paramValues">参数列表</param> public void AsyncLoadRes <T>(string path, OnAsyncObjFinish onFinish, LoadResPriority priority = LoadResPriority.Res_Slow, params object[] paramValues) where T : UnityEngine.Object { ResManager.Instance.AsyncLoadResourceAsset <T>(path, onFinish, GetHashCode(), priority, paramValues); }