Exemple #1
0
    public Object[] GetBundleObjs(string bundleName, string resName)
    {
        BundleBackNode backNode = GetBackNode(bundleName);

        //  Debug.Log("bundleName ==" + bundleName);
        return(backNode.GetResObjs(resName));
    }
Exemple #2
0
    public Object[] GetBundleObjs(int index, int resIndex)
    {
        BundleBackNode backNode = bundleNode[index];


        return(backNode.GetResObjs(resIndex));
    }
Exemple #3
0
    //HunkRes = ManagerID.AssetManager+1,

    //ReleaseSingleObj , //释放单个object

    //ReleaseBundleObjes,//释放一个bundle 包里 所有的object

    //ReleaseScenceObjes,// 释放 单个场景中所有的 object

    //ReleaseSingleBundle,//释放单个 assetbundle

    //ReleaseScenceBundle,//释放 一个场景中的所有的assetbundle

    //ReleaseAll,// 释放 一个场景中所有的 bundle 和 objects

    public override void ProcessEvent(MsgBase msg)
    {
        switch (msg.msgId)
        {
        case (ushort)AssetEvent.HunkMutiRes:

        {
            AssetRequesetMsg tmpMsg = (AssetRequesetMsg)msg;



            tmpMsg.requesetInfo.Debug();

            BundleRequest tmpRequeset = MutiResManager.AddRequeset(tmpMsg);


            try
            {
                int tmpCount = tmpRequeset.bundleNode.Length;

                for (int i = 0; i < tmpCount; i++)
                {
                    BundleBackNode tmpNode = tmpRequeset.bundleNode[i];

                    string bundlFullName = ILoadManager.Instance.GetBundleRelateName(tmpNode.ScenceName, tmpNode.BundleName);

                    tmpNode.FullBundleName = bundlFullName;



                    MutiResManager.AddNodes(tmpNode);


                    RequesetBundle(tmpNode.ScenceName, tmpNode.BundleName, bundlFullName);
                }
            }
            catch (System.Exception e)
            {
                Debug.LogError("e ==" + e);
            }
        }
        break;

        case (ushort)AssetEvent.HunkScences:
        {
            RequesetScenceMsg tmpMsg = (RequesetScenceMsg)msg;


            ILoadManager.Instance.LoadAsset(tmpMsg.scenceName, tmpMsg.bundleName, tmpMsg.backDelegate);
        }
        break;



        default:
            break;
        }
    }
Exemple #4
0
    /// <summary>
    /// bundle load 到内存中了 去加载 res
    /// </summary>
    /// <param name="node"></param>
    void RequesetNode(BundleBackNode node)
    {
        int tmpCount = node.bundleInfo.Length;

        for (int i = 0; i < tmpCount; i++)
        {
            BundleInfo tmpInfo = node.bundleInfo[i];

            GetResources(tmpInfo);
        }
    }
Exemple #5
0
    public void DebugBundle()
    {
        // Debuger.Log("bundleNode.Length====" + bundleNode.Length);
        for (int i = 0; i < bundleNode.Length; i++)
        {
            // Debuger.Log("bundleNode.Length=2222===" + i);
            BundleBackNode backNode = bundleNode[i];

            backNode.DebugObj();
        }
    }
Exemple #6
0
    public void ResLoadFinish(BundleBackNode node)
    {
        bundleCount++;



        if (bundleCount == bundleNode.Length)
        {
//            Debug.Log("bundleCount==" + bundleCount);
//            Debuger.Log("hunck   the whole Bundle  back ==" + node.bundleName);

            AssetResponseMsg tmpResponse = new AssetResponseMsg(this);
            assetBase.SendMsg(tmpResponse);


            requesetCallBack(this);
        }
    }
Exemple #7
0
    public BundleRequest(AssetRequesetInfo info, AssetBase mono, BundleRequesetBack callBack)
    {
        requesetCallBack  = new BundleRequesetBack(callBack);
        this.requesetInfo = info;
        bundleCount       = 0;

        this.assetBase = mono;


        //info.Debug();

        bundleNode = new BundleBackNode[info.bundles.Length];

        for (int i = 0; i < info.bundles.Length; i++)
        {
            BundleBackNode tmpBundle = new BundleBackNode(info.resSingle[i], info.scenceName, info.bundles[i], null, info.resNames[i]);

            tmpBundle.AddCallBack(ResLoadFinish);
            bundleNode[i] = tmpBundle;
        }
    }
Exemple #8
0
    /// <summary>
    /// assetbundle  已经load 到内存中回调
    /// </summary>
    /// <param name="fullBundleName"></param>
    public void BundleLoadFinish(string fullBundleName)
    {
        if (manager.ContainsKey(fullBundleName))
        {
            NodeBase topNode = manager[fullBundleName];


            do
            {
                BundleBackNode tmpNode = (BundleBackNode)topNode;

                requesetCallBack(tmpNode);  // 去请求资源

                topNode = topNode.next;
            }while (topNode != null);

            //bundle 加载完成
            manager.Remove(fullBundleName);
        }

        // requesetManager
    }
Exemple #9
0
    public BundleBackNode(bool[] single, string scence, string bundle, BundleBackNode nextValue, params string[] res)
    {
        this.next = nextValue;


        this.scenceName = scence;

        this.bundleName = bundle;

        this.bundleInfo = new BundleInfo[res.Length];

        for (int i = 0; i < res.Length; i++)
        {
            this.bundleInfo[i] = new BundleInfo(single[i], scence, bundle, res[i], AddReses);
        }

        //    this.resName = res;



        // this.resObjs = new Object[resName.Length][];

        this.initialCount = 0;
    }
Exemple #10
0
 /// <summary>
 /// 以assetbundle  full name 为链表 key
 /// </summary>
 /// <param name="tmpNode"></param>
 public void AddNodes(BundleBackNode tmpNode)
 {
     this.AddNode(tmpNode.FullBundleName, tmpNode);
 }