コード例 #1
0
        internal void Start(ProvideHandle provideHandle)
        {
            m_ActiveHandler      = null;
            this.m_ProvideHandle = provideHandle;
            m_Options            = provideHandle.Location.Data as AssetBundleRequestOptions;
            foreach (var module in m_Modules)
            {
                if (!module.TryBeginOperation(provideHandle, m_Options, OnCompleted))
                {
                    continue;
                }
                if (!m_IsSynchronous)
                {
                    return;
                }

                Debug.LogFormat("[{0}.{1}] path={2} module={3} success={4}", nameof(ModularAssetBundleResource),
                                nameof(Start), Path.GetFileNameWithoutExtension(provideHandle.Location.InternalId),
                                module.GetType().Name, m_AssetBundle != null);
                bool success = m_AssetBundle != null;
                provideHandle.Complete(this, success, m_OperationException);
                return;
            }

            Debug.LogFormat("[{0}.{1}] path={2} Invalid Path", nameof(ModularAssetBundleResource), nameof(Start), Path.GetFileNameWithoutExtension(provideHandle.Location.InternalId));
            provideHandle.Complete(this, false, new Exception($"Invalid path in AssetBundleProvider: '{provideHandle.Location}'."));
        }
コード例 #2
0
 public void Unload()
 {
     if (m_AssetBundle != null)
     {
         m_AssetBundle.Unload(true);
         m_AssetBundle = null;
     }
     m_ActiveHandler?.Unload();
     m_ActiveHandler = null;
 }
 protected void CompleteOperation(IAssetBundleResourceHandler resourceHandler, AssetBundle assetBundle)
 {
     if (assetBundle == null)
     {
         CompleteOperation(resourceHandler, "Assetbundle failed to load.");
         return;
     }
     Debug.LogFormat("[{0}.{1}] {2} Success={3} hasCallback={4}", resourceHandler.GetType().Name, nameof(CompleteOperation), Path.GetFileNameWithoutExtension(m_ProvideHandle.Location.InternalId), assetBundle != null, m_CompletedCallback != null);
     m_CompletedCallback?.Invoke(resourceHandler, assetBundle, null);
 }
コード例 #4
0
 internal void OnCompleted(IAssetBundleResourceHandler handler, AssetBundle assetBundle, Exception exception)
 {
     Debug.LogFormat("[{0}.{1}] path={2} module={3} success={4}", nameof(ModularAssetBundleResource),
                     nameof(OnCompleted), Path.GetFileNameWithoutExtension(m_ProvideHandle.Location.InternalId),
                     handler.GetType().Name, assetBundle != null);
     m_ActiveHandler      = handler;
     m_AssetBundle        = assetBundle;
     m_OperationException = exception;
     if (m_IsSynchronous)
     {
         return;
     }
     m_ProvideHandle.Complete(this, m_AssetBundle != null, m_OperationException);
 }
 protected void CompleteOperation(IAssetBundleResourceHandler resourceHandler, string exception)
 {
     Debug.LogFormat("[{0}.{1}] {2} Error={3}", resourceHandler.GetType().Name, nameof(CompleteOperation), Path.GetFileNameWithoutExtension(m_ProvideHandle.Location.InternalId), exception);
     m_CompletedCallback?.Invoke(resourceHandler, null, new Exception(exception));
 }