public void GetResources(string sceneName, string bundleName, string resName, bool isSingle, ushort backId) { if (!ILoadManager.Instance.IsLoadingBundle(sceneName, bundleName)) {//没有加载 ILoadManager.Instance.LoadAsset(sceneName, bundleName, LoadProgress); string bundleFullName = ILoadManager.Instance.GetBundleReateName(sceneName, bundleName); if (bundleFullName != null) { NativeResCallBackNode tmpNode = new NativeResCallBackNode(isSingle, sceneName, bundleName, resName, backId, SendToBackMsg, null); CallBack.AddBundle(bundleFullName, tmpNode); } else { Debug.Log("Dont contain bundle ==" + bundleName); } } else if (ILoadManager.Instance.IsLoadingBundleFinish(sceneName, bundleName)) {//已经加载 if (isSingle) { UnityEngine.Object obj = ILoadManager.Instance.GetSingleResources(sceneName, bundleName, resName); this.ReleaseBackMsg.Changer(backId, obj); SendMsg(ReleaseBackMsg); } else { UnityEngine.Object[] objs = ILoadManager.Instance.GetMutResources(sceneName, bundleName, resName); this.ReleaseBackMsg.Changer(backId, objs); SendMsg(ReleaseBackMsg); } } else { //已经加载 但是没有完成 string bundleFullName = ILoadManager.Instance.GetBundleReateName(sceneName, bundleName); if (bundleFullName != null) { NativeResCallBackNode tmpNode = new NativeResCallBackNode(isSingle, sceneName, bundleName, resName, backId, SendToBackMsg, null); CallBack.AddBundle(bundleFullName, tmpNode); } else { Debug.Log("Dont contain bundle ==" + bundleName); } } }
public override void ProcessEvent(MsgBase recMsg) { switch (recMsg.msgId) { case (ushort)AssetEvent.HankResource: { HankAssetResource tmpMsg = (HankAssetResource)recMsg; #if USE_ASSETBUNDLE GetResources(tmpMsg.scenceName, tmpMsg.bundleName, tmpMsg.resourceName, tmpMsg.isSingle, tmpMsg.backMsgId); #else if (tmpMsg.isSingle) { UnityEngine.Object temp = ResourcesManager.Instance.GetSceneResources(tmpMsg.scenceName, tmpMsg.bundleName, tmpMsg.resourceName); NativeResourceCallBackNode tmpResourceNode = new NativeResourceCallBackNode(tmpMsg.isSingle, tmpMsg.scenceName, tmpMsg.bundleName, tmpMsg.resourceName, tmpMsg.backMsgId, SendToBackMsg, null); CallBack.AddBundle(tmpMsg.bundleName, tmpResourceNode); this.ReleaseBack.Changer(tmpMsg.backMsgId, temp); SendMsg(ReleaseBack); } else { Debug.LogError("Resource.Load 暂时不需要这个功能"); } #endif } break; case (ushort)AssetEvent.ReleaseSingleObj: { HankAssetResource tmpMsg = (HankAssetResource)recMsg; #if USE_ASSETBUNDLE ILoaderManager.Instance.UnLoadResObj(tmpMsg.scenceName, tmpMsg.bundleName, tmpMsg.resourceName); #else ResourcesManager.Instance.ReleaseSingleSceneObject(tmpMsg.scenceName, tmpMsg.bundleName, tmpMsg.resourceName); #endif } break; case (ushort)AssetEvent.ReleaseBundleObj: { HankAssetResource tmpMsg = (HankAssetResource)recMsg; #if USE_ASSETBUNDLE ILoaderManager.Instance.UnLoadBundleResObj(tmpMsg.scenceName, tmpMsg.bundleName); #else ResourcesManager.Instance.ReleaseSceneTypeObject(tmpMsg.scenceName, tmpMsg.bundleName); #endif } break; case (ushort)AssetEvent.ReleaseScenceObj: { HankAssetResource tmpMsg = (HankAssetResource)recMsg; #if USE_ASSETBUNDLE ILoaderManager.Instance.UnLoadAllResObjs(tmpMsg.scenceName); #else ResourcesManager.Instance.ReleaseAllSceneObject(tmpMsg.scenceName); #endif } break; case (ushort)AssetEvent.ReleaseSingleBundle: { HankAssetResource tmpMsg = (HankAssetResource)recMsg; ILoaderManager.Instance.UnLoadAssetBunle(tmpMsg.scenceName, tmpMsg.bundleName); } break; case (ushort)AssetEvent.ReleaseScenceBundle: { HankAssetResource tmpMsg = (HankAssetResource)recMsg; ILoaderManager.Instance.UnLoadAllAssetBundle(tmpMsg.scenceName); } break; case (ushort)AssetEvent.ReleaseAll: { HankAssetResource tmpMsg = (HankAssetResource)recMsg; ILoaderManager.Instance.UnLoadAllAssetBundleAndObjs(tmpMsg.scenceName); } break; } }