示例#1
0
        public void CratePrefab(ref string strPrefabName, CreatePrefabEvent callBack, object custumParam = null, TaskPriority ePriority = TaskPriority.TaskPriority_Normal)
        {
            m_callback      = callBack;
            m_ePriority     = ePriority;
            m_strPrefabName = strPrefabName;
            //custumParam
            if (custumParam is List <string> )
            {
                List <string> lstDepend = (List <string>)custumParam;
                if (lstDepend.Count > 0)
                {
                    m_nLoadCount = lstDepend.Count;
                    m_LoadIndex  = 0;

                    m_denpenArray = new AssetBundleResource[lstDepend.Count];

                    for (int i = 0; i < lstDepend.Count; i++)
                    {
                        string path            = lstDepend[i];
                        AssetBundleResource ab = ResourceManager.Instance().GetAssetBundle(ref path, OnLoadDepende, null, ePriority);
                    }
                }
                else
                {
                    m_res = ResourceManager.Instance().GetAssetBundle(ref m_strPrefabName, LoadFinishDelegate, null, m_ePriority);
                }
            }
            else
            {
                m_res = ResourceManager.Instance().GetAssetBundle(ref m_strPrefabName, LoadFinishDelegate, null, m_ePriority);
            }
        }
示例#2
0
 public void Create(ref string strObjName, TaskPriority ePriority = TaskPriority.TaskPriority_Normal)
 {
     m_strObjName = strObjName;
     m_node       = new GameObject("EffectNode");
     m_node.SetActive(false);
     code  = GetHashCode();
     m_res = ResourceManager.Instance().GetAssetBundle(ref strObjName, LoadFinishDelegate, null, ePriority);
 }
示例#3
0
 public void CreateAudio(ref string strAudioName, Transform root, CreateAudioEvent callBack, object custumParam = null, TaskPriority ePriority = TaskPriority.TaskPriority_Normal)
 {
     if (root == null)
     {
         return;
     }
     m_root     = root;
     m_callback = callBack;
     m_res      = ResourceManager.Instance().GetAssetBundle(ref strAudioName, LoadFinishDelegate, custumParam, ePriority);
 }
示例#4
0
        void OnLoadDepende(IResource res, string strResName, object customParam)
        {
            var ab = res as AssetBundleResource;

            if (ab != null)
            {
                m_denpenArray[m_LoadIndex++] = ab;
                if (m_LoadIndex == m_nLoadCount)
                {
                    m_res = ResourceManager.Instance().GetAssetBundle(ref m_strPrefabName, LoadFinishDelegate, null, m_ePriority);
                }
            }
        }
示例#5
0
 public void Release()
 {
     if (m_dicSprite != null)
     {
         m_dicSprite.Clear();
         m_dicSprite = null;
     }
     if (m_res != null)
     {
         m_res.Release();
     }
     m_res = null;
 }
示例#6
0
 public void Destroy()
 {
     if (m_node != null)
     {
         GameObject.DestroyImmediate(m_node);
         m_node = null;
     }
     if (m_res != null)
     {
         m_res.Release();
         m_res = null;
     }
 }
示例#7
0
 void LoadFinishDelegate(IResource res, string strResName, object customParam)
 {
     m_res = res as AssetBundleResource;
     if (m_res != null && m_res.assetBundle != null)
     {
         Sprite[] sps = m_res.assetBundle.LoadAllAssets <Sprite>();
         foreach (var item in sps)
         {
             m_dicSprite.Add(item.name, item);
         }
     }
     if (m_callback != null)
     {
         m_callback(this, customParam);
     }
 }
示例#8
0
        public IResource CreateResource(IResource.EResourceType eType, ResourceManagerImpl mgr, TaskPriority ePriority = TaskPriority.TaskPriority_Normal)
        {
            IResource res = null;

            s_ResouceIDSeed++;
            switch (eType)
            {
            case IResource.EResourceType.EResourceType_AssetBundle:
                res = new AssetBundleResource(GetMgr(eType), s_ResouceIDSeed);
                break;

            case IResource.EResourceType.EResourceType_Texture:
                res = new TextureResource(GetMgr(eType), s_ResouceIDSeed);
                break;
            }

            res.SetPriority(ePriority);
            return(res);
        }
示例#9
0
 void LoadFinishDelegate(IResource res, string strResName, object customParam)
 {
     m_res = res as AssetBundleResource;
     if (m_res != null && m_res.assetBundle != null)
     {
         AudioClip[] audios = m_res.assetBundle.LoadAllAssets <AudioClip>();
         if (audios == null || audios.Length <= 0)
         {
             Utility.Log.Error("创建声音文件{0}失败!", strResName);
             return;
         }
         m_musicSource      = m_root.gameObject.AddComponent <AudioSource>();
         m_musicSource.clip = audios[0];
     }
     if (m_callback != null)
     {
         m_callback(this, customParam);
     }
 }
示例#10
0
        void LoadFinishDelegate(IResource res, string strResName, object customParam)
        {
            m_res = res as AssetBundleResource;

            if (m_res == null)
            {
                return;
            }

            if (m_res.m_objRes != null && m_res.m_objRes is Sprite)
            {
                m_sprite = m_res.m_objRes as Sprite;

                if (m_callback != null)
                {
                    m_callback(this, customParam);
                }

                return;
            }

            string strSpriteName = "";
            int    index         = strResName.LastIndexOf("/");

            if (index != -1)
            {
                strSpriteName = strResName.Substring(index + 1);
            }
            index = strSpriteName.LastIndexOf(".");
            if (index != -1)
            {
                strSpriteName = strSpriteName.Substring(0, index);
            }

            m_sprite       = m_res.LoadAsset(strSpriteName, typeof(Sprite)) as Sprite;
            m_res.m_objRes = m_sprite;

            if (m_callback != null)
            {
                m_callback(this, customParam);
            }
        }
示例#11
0
        void LoadFinishDelegate(IResource res, string strResName, object customParam)
        {
            m_res = res as AssetBundleResource;
            if (m_res != null)
            {
                if (m_res.m_objRes == null && m_res.assetBundle != null)
                {
                    Object[] objs = m_res.assetBundle.LoadAllAssets(typeof(UnityEngine.Object));
                    if (objs != null && objs.Length > 0)
                    {
                        m_res.m_objRes = objs[0];
                    }
                }
            }

            if (m_callback != null)
            {
                m_callback(this, customParam);
            }
        }
示例#12
0
 void LoadFinishDelegate(IResource res, string strResName, object customParam)
 {
     m_res = res as AssetBundleResource;
     if (m_res != null)
     {
         if (m_res.m_objRes == null && m_res.assetBundle != null)
         {
             Object[] objs = m_res.assetBundle.LoadAllAssets(typeof(UnityEngine.Object));
             if (objs != null && objs.Length > 0)
             {
                 m_res.m_objRes = objs[0];
             }
         }
         if (m_effect == null && m_res.m_objRes != null)
         {
             m_effect = GameObject.Instantiate(m_res.m_objRes) as GameObject;
             m_effect.transform.SetParent(m_node.transform);
             GameObj.RefreshShader(m_effect);
             m_node.name = m_effect.name.Replace("(Clone)", "");
             m_fDruation = CalcParticleSystemDuration(m_effect.transform);
         }
     }
 }
示例#13
0
 public void CrateSprite(ref string strFontName, CreateSpriteEvent callBack, object custumParam = null,
                         TaskPriority ePriority = TaskPriority.TaskPriority_Normal)
 {
     m_callback = callBack;
     m_res      = ResourceManager.Instance().GetAssetBundle(ref strFontName, LoadFinishDelegate, custumParam, ePriority);
 }