示例#1
0
文件: BundleRes.cs 项目: ayuexs/C-
        public static BundleRes Allocate(ResData data)
        {
            var res = ObjectPool <BundleRes> .Instance.Allocate();

            res.Init(data);
            return(res);
        }
示例#2
0
 public void Init(ResData data)
 {
     m_assetName = data.assetName;
     m_state     = ResState.Waiting;
     m_type      = ResType.Resource;
     m_asset     = null;
 }
示例#3
0
文件: ResPool.cs 项目: ayuexs/C-
        /// <summary>
        /// 获取Res对象
        /// </summary>
        /// <param name="data"></param>
        /// <param name="create"></param>
        public Res _Get(ResData data, bool create = false)
        {
            Res res = null;

            if (poolDic.TryGetValue(data.poolKey, out res))
            {
                res.Retain();
                return(res);
            }

            if (!create)
            {
                return(null);
            }

            res = ResFactory.Create(data);

            if (res == null)
            {
                return(null);
            }

            res.Retain();

            poolDic.Add(data.poolKey, res);
            if (!poolList.Contains(res))
            {
                poolList.Add(res);
            }

            return(res);
        }
示例#4
0
文件: BundleRes.cs 项目: ayuexs/C-
 public void Init(ResData data)
 {
     m_bundleName  = data.bundleName;
     m_state       = ResState.Waiting;
     m_type        = ResType.Bundle;
     m_asset       = null;
     m_assetBundle = null;
 }
示例#5
0
文件: BundleRes.cs 项目: ayuexs/C-
        /// <summary>
        /// 查找依赖
        /// </summary>
        private bool FindDependencies()
        {
            string[] ds     = AssetBundleDependencies.Instance.GetDependencies(m_bundleName);
            int      length = ds.Length;

            m_dependencies = new BundleRes[length];
            for (int i = 0; i < length; i++)
            {
                m_dependencies[i] = ResPool.Get <BundleRes>(ResData.AllocateBundle(ds[i]), true);
            }
            return(length > 0);
        }
示例#6
0
 /// <summary>
 /// 搜索bundle
 /// </summary>
 private bool SearchAssetBundle()
 {
     if (m_assetBundle == null)
     {
         m_bundleRes = ResPool.Get <BundleRes>(ResData.AllocateBundle(bundleName));
         if (m_bundleRes != null)
         {
             m_assetBundle = m_bundleRes.assetBundle;
         }
     }
     return(m_assetBundle != null);
 }
示例#7
0
        public void Init(string bundleName, string assetName, ResNotificationListener listener)
        {
            m_only = string.IsNullOrEmpty(assetName);

            m_bundleRes = ResPool.Get <BundleRes>(ResData.AllocateBundle(bundleName), true);

            if (!m_only)
            {
                m_assetRes = ResPool.Get <AssetRes>(ResData.AllocateAsset(assetName, bundleName), true);
            }

            m_listener = listener;
        }
示例#8
0
 public void Init(string assetName, ResNotificationListener listener)
 {
     m_mainRes  = ResPool.Get <ResourceRes>(ResData.AllocateResource(assetName), true);
     m_listener = listener;
 }
示例#9
0
文件: ResPool.cs 项目: ayuexs/C-
 /// <summary>
 /// 获取资源
 /// </summary>
 /// <param name="data"></param>
 /// <param name="createNew">如果没有是否创建</param>
 public static Res Get(ResData data, bool createNew = false)
 {
     return(Instance._Get(data, createNew));
 }
示例#10
0
文件: ResPool.cs 项目: ayuexs/C-
 /// <summary>
 /// 获取资源
 /// </summary>
 /// <param name="data"></param>
 /// <param name="createNew">如果没有是否创建</param>
 public static T Get <T>(ResData data, bool createNew = false) where T : Res
 {
     return(Get(data, createNew) as T);
 }