Ejemplo n.º 1
0
 void CreateLoadGameObject(AssetBundleLoader loader)
 {
     if (loader.createComplete == null)
     {
         return;
     }
     System.Delegate[] list = loader.createComplete.GetInvocationList();
     for (int i = list.Length - 1; i >= 0; i--)
     {
         CreateGameObjectDelegate loadDelegate = list[i] as CreateGameObjectDelegate;
         try
         {
             GameObject obj = loader.CreateObject();
             if (obj != null)
             {
                 gameObjectMaps[obj] = loader;
             }
             loadDelegate(loader.data.shortName, obj);
         }
         catch (Exception e)
         {
             Loger.Error(e.ToString());
         }
     }
     loader.ClearCreateComplete();
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 创建完毕回调
 /// </summary>
 /// <param name="complete"></param>
 public void AddCreateComplete(CreateGameObjectDelegate complete)
 {
     if (complete == null)
     {
         return;
     }
     createComplete += complete;
 }
 public Pool(GameObject prefab, Transform parent, int initialCapacity, int maxObjects, CreateGameObjectDelegate func = null)
 {
     this.prefab                = prefab;
     this.parent                = parent;
     this.maxObjects            = maxObjects;
     this.objects               = new List <PoolObject>(initialCapacity);
     m_createGameObjectDelegate = func;
     CreatePoolObjects(initialCapacity);
 }
Ejemplo n.º 4
0
    /// <summary>
    /// 开始加载文件
    /// </summary>
    /// <param name="url"></param>
    /// <param name="type"></param>
    /// <param name="prority"></param>
    /// <param name="Complete"></param>
    public void Load(string url, EnResourceType type, EnLoadPrority prority, CreateGameObjectDelegate Complete)
    {
        string            abPath = PathUtil.GetAbUrl(url, type);
        AssetBundleLoader loader = GetLoader(abPath);

        //已经在加载
        if (loader != null && loader.isInit)
        {
            //加载完毕
            if (loader.isLoadComplete)
            {
                //是否需要创建
                if (loader.isCreateComplete)
                {
                    CreateAsset(loader);
                }
                else
                {
                    LoadAsset(loader);
                }
            }
        }
        //没有加载过
        else
        {
            if (!assetBundleDataMaps.ContainsKey(abPath))
            {
                Loger.Error(abPath);
                return;
            }
            loader = CreateLoader(assetBundleDataMaps[abPath], prority);
        }
        loader.AddCreateComplete(Complete);
        loader.AddLoadComplete(LoadAsset);
        loader.prority = prority;
        if (!loader.isLoadComplete)
        {
            isSortWaitLoadFile = true;
        }
    }
Ejemplo n.º 5
0
 public GameObjectPool()
 {
     createGameObject = DefaultCreateGameObject;
 }