Exemple #1
0
        public void LoadAssetReferences(List <string> assetReferences, ECgLoadAsyncOrder asyncOrder, FOnFinishedLoadingAssetReferences.Event e)
        {
            // Add Callback
            OnFinishedLoadingAssetReferences_Events.Add(new FOnFinishedLoadingAssetReferences());

            int count = OnFinishedLoadingAssetReferences_Events.Capacity;

            OnFinishedLoadingAssetReferences_Events[count - 1].Add(e);

            AsyncOrders.Add(asyncOrder);
            AssetReferencesQueue.Add(new List <string>());

            count = AssetReferencesQueue.Capacity;

            int size = assetReferences.Capacity;

            for (int i = 0; i < size; ++i)
            {
                AssetReferencesQueue[count - 1].Add(assetReferences[i]);
            }

            // If the FIRST batch of AssetReferences, queue loading immediately
            if (AssetReferencesQueue.Capacity == 1)
            {
                LoadAssetReferences_Internal(AssetReferencesQueue[count - 1], asyncOrder);
            }
        }
Exemple #2
0
        public void LoadAssetReferences_Internal(List <string> assetReferences, ECgLoadAsyncOrder asyncOrder)
        {
            AssetReferencesLoadedCount = 0;

            ResourceSizeLoaded.Reset();

            // Start Loading - Load All References

            int size = assetReferences.Capacity;

            OnStartLoadingAssetReferences_Event.Broadcast(size);
            OnStartLoadProgress_Event.Broadcast(size);

            if (LogLoading.Log())
            {
                FCgDebug.Log("FCgManager_Loading.LoadAssetReferences_Internal: Requesting Load of " + size + " Assets");
                // None | Bulk
                if (asyncOrder == ECgLoadAsyncOrder.None ||
                    asyncOrder == ECgLoadAsyncOrder.Bulk)
                {
                    for (int i = 0; i < size; ++i)
                    {
                        FCgDebug.Log("FCsManager_Loading.LoadAssetReferences_Internal: Requesting Load of " + assetReferences[i]);
                    }
                }
            }
            // Start the Async Load

            // FirstToLast
            if (asyncOrder == ECgLoadAsyncOrder.FirstToLast)
            {
                if (LogLoading.Log())
                {
                    FCgDebug.Log("FCsManager_Loading.LoadAssetReferences_Internal: Requesting Load of " + assetReferences[FIRST]);
                }
                OnStartLoadingAssetReference_Event.Broadcast(assetReferences[FIRST]);

                ResourceRequest r = Resources.LoadAsync(assetReferences[FIRST]);
                r.completed += OnFinishedLoadingAssetReference;
            }
            // Bulk
            else
            {
                for (int i = 0; i < size; ++i)
                {
                    ResourceRequest r = Resources.LoadAsync(assetReferences[i]);
                    r.completed += OnFinishedLoadingAssetReference_Bulk;
                }
            }

            LoadingStartTime      = Time.realtimeSinceStartup;
            LoadingTotalStartTime = LoadingStartTime;
        }