コード例 #1
0
    private void GetResources(string sceneName, string bundleName, string resName, bool isSingle, ushort backID)
    {
        if (!ILoaderManager.Instance.IsLoadingAssetBundle(sceneName, bundleName))                    // 没有加载
        // 加载并添加请求
        {
            ILoaderManager.Instance.LoadAsset(sceneName, bundleName, OnLoadProgress);

            string bundleFullName = ILoaderManager.Instance.GetBundleReflectName(sceneName, bundleName);
            if (bundleFullName != null)
            {
                NativeResCallBackNode tmpNode = new NativeResCallBackNode(isSingle, sceneName, bundleName, resName, backID, OnSendToBackMsg, null);

                CallBackMgr.AddBundle(bundleFullName, tmpNode);
            }
            else
            {
                Debug.LogWarning("don't contains bundle = " + bundleName);
            }
        }
        else if (ILoaderManager.Instance.IsLoadingBundleFinish(sceneName, bundleName))              // 有加载,并且加载完成
        // 直接返回
        {
            if (isSingle)
            {
                UnityEngine.Object tmpObj = ILoaderManager.Instance.GetSingleResources(sceneName, bundleName, resName);

                ResBackMsg.Change(backID, tmpObj);
                SendMsg(ResBackMsg);
            }
            else
            {
                UnityEngine.Object[] tmpObjs = ILoaderManager.Instance.GetMultiResources(sceneName, bundleName, resName);

                ResBackMsg.Change(backID, tmpObjs);
                SendMsg(ResBackMsg);
            }
        }
        else                                                                                        // 已经加载,但没有完成
        // 把命令存下来

        {
            string bundleFullName = ILoaderManager.Instance.GetBundleReflectName(sceneName, bundleName);
            if (bundleFullName != null)
            {
                NativeResCallBackNode tmpNode = new NativeResCallBackNode(isSingle, sceneName, bundleName, resName, backID, OnSendToBackMsg, null);

                CallBackMgr.AddBundle(bundleFullName, tmpNode);
            }
            else
            {
                Debug.LogWarning("don't contains bundle = " + bundleName);
            }
        }
    }
コード例 #2
0
 private void GetResources(string sceneName, string bundleName, string resName, bool isSingle, ushort backid)
 {
     //没有加载
     if (!ILoaderManager.Instance.IsLoadedAssetBundle(sceneName, bundleName))
     {
         Debug.Log("开始加载");
         ILoaderManager.Instance.LoadAsset(sceneName, bundleName, LoaderProgress);
         string bundleFullName = ILoaderManager.Instance.GetBundleRelativeName(sceneName, bundleName);
         if (bundleFullName != null)
         {
             NativeResCallBackNode node = new NativeResCallBackNode(isSingle, sceneName, bundleName, resName, backid, SendToBackMsg, null);
             CallBackManager.AddBundle(bundleFullName, node);
             Debug.Log("Get Resource==" + bundleFullName);
         }
         else
         {
             Debug.LogWarning("Bundle名为空:" + bundleName);
         }
     }
     //表示已经加载完成
     else if (ILoaderManager.Instance.IsLoadingBundleFinish(sceneName, bundleName))
     {
         if (isSingle)
         {
             Debug.Log("加载完成");
             UnityEngine.Object obj = ILoaderManager.Instance.GetSingleResource(sceneName, bundleName, resName);
             ResBackMsg.Changer(backid, obj);
             SendMsg(ResBackMsg);
         }
         else
         {
             UnityEngine.Object[] objs = ILoaderManager.Instance.GetResources(sceneName, bundleName, resName);
             ResBackMsg.Changer(backid, objs);
             SendMsg(ResBackMsg);
         }
     }
     //已经加载但是没有加载完把命令存起来
     else
     {
         Debug.Log("加载中");
         string bundleFullName = ILoaderManager.Instance.GetBundleRelativeName(sceneName, bundleName);
         if (bundleFullName != null)
         {
             NativeResCallBackNode node = new NativeResCallBackNode(isSingle, sceneName, bundleFullName, resName, backid, SendToBackMsg, null);
             CallBackManager.AddBundle(bundleFullName, node);
         }
         else
         {
             Debug.LogWarning("Bundle名为空:" + bundleName);
         }
     }
 }
コード例 #3
0
    /// <summary>
    /// node 回调 回复上层消息
    /// </summary>
    /// <param name="node"></param>
    private void OnSendToBackMsg(NativeResCallBackNode node)
    {
        if (node.isSingle)
        {
            // 获取资源
            UnityEngine.Object tmpObj = ILoaderManager.Instance.GetSingleResources(node.sceneName, node.bundleName, node.resName);

            // 设置参数并发送
            ResBackMsg.Change(node.backMagID, tmpObj);
            SendMsg(ResBackMsg);
        }
        else
        {
            UnityEngine.Object[] tmpObj = ILoaderManager.Instance.GetMultiResources(node.sceneName, node.bundleName, node.resName);

            ResBackMsg.Change(node.backMagID, tmpObj);
            SendMsg(ResBackMsg);
        }
    }